我有一个大文件,我希望每隔y行提取x行。我四处搜索并找到了关于如何打印前z行的答案,如tail -n +<lines to skip + 1>
我试图将它与sed结合但不知道如何。
答案 0 :(得分:4)
要打印每个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
为真,它将打印该行。 NR
是从第一行开始的行号。
答案 1 :(得分:1)
我喜欢awk的答案,但如果你必须使用sed:
sed -n 'p;n;p;n;p;n;n;n'
这将写3然后跳过3.每个&#39;&#39;&#39;&#39;&#39;写下当前行,然后是&#39;&#39;&#39;&#39;&#39;抓住下一个。
我不推荐使用x和y的高值,因为它会变长。