Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何每y行数提取x行_Bash_Sed_Tail - Fatal编程技术网

Bash 如何每y行数提取x行

Bash 如何每y行数提取x行,bash,sed,tail,Bash,Sed,Tail,我有一个大文件,我想从中提取x行每y行数。我四处搜索,找到了一些关于如何打印前z行的答案,比如tail-n+ 我正在尝试将它与sed结合起来,但不知道如何结合。要打印每个tex行的前两行,请尝试: awk -v x=2 -v y=10 '(NR - 1) % y < x' 例如: $ seq 20 | awk -v x=2 -v y=10 '(NR - 1) % y < x' 1 2 11 12 工作原理 Awk逐行读取输入。如果条件NR-1%y

我有一个大文件,我想从中提取x行每y行数。我四处搜索,找到了一些关于如何打印前z行的答案,比如tail-n+
我正在尝试将它与sed结合起来,但不知道如何结合。

要打印每个tex行的前两行,请尝试:

awk -v x=2 -v y=10 '(NR - 1) % y < x'
例如:

$ seq 20 | awk -v x=2 -v y=10 '(NR - 1) % y < x'
1
2
11
12
工作原理
Awk逐行读取输入。如果条件NR-1%y 要打印每个tex行的前两行,请尝试:

awk -v x=2 -v y=10 '(NR - 1) % y < x'
例如:

$ seq 20 | awk -v x=2 -v y=10 '(NR - 1) % y < x'
1
2
11
12
工作原理
Awk逐行读取输入。如果条件NR-1%y 我喜欢awk答案,但如果必须使用sed:

sed -n 'p;n;p;n;p;n;n;n'
这将写入3,然后跳过3。每个p写入当前行,然后n获取下一行


我不建议将其用于x和y的高值,因为它会变长。

我喜欢awk答案,但如果必须使用sed:

sed -n 'p;n;p;n;p;n;n;n'
这将写入3,然后跳过3。每个p写入当前行,然后n获取下一行


我不建议将其用于x和y的高值,因为它会变长。

您的意思是提取行[1…x]、删除行[x+1…y+x]、提取行[y+1…y+x]、删除行[y+x+1…2y]等等?您的意思是提取行[1…x]、删除行[x+1…y]、提取行[y+1…y+x]、删除行[y+x+1…2y]等等?关于其工作原理的精彩解释。我还学习了seq 20的命令。对它的工作原理有很好的解释。我还学习了seq 20的命令。