use*_*741 21 printing awk line gawk
我有一个非常大的文件,我需要获取每个第n行并将其打印成一行.
我的数据:
1 937 4.320194
2 667 4.913314
3 934 1.783326
4 940 -0.299312
5 939 2.309559
6 936 3.229496
7 611 -1.41808
8 608 -1.154019
9 606 2.159683
10 549 0.767828
Run Code Online (Sandbox Code Playgroud)
我希望我的数据看起来像这样:
1 937 4.320194
3 934 1.783326
5 939 2.309559
7 611 -1.41808
9 606 2.159683
Run Code Online (Sandbox Code Playgroud)
这当然是一个例子,我想要我的巨大数据文件的每10行.到目前为止我试过这个:
NF == 6 {
if(NR%10) {print;}
}
Run Code Online (Sandbox Code Playgroud)
Ste*_*eve 48
要打印每一行,从第一行开始:
awk 'NR%2==1' file.txt
Run Code Online (Sandbox Code Playgroud)
要打印每十行,从第十行开始:
awk 'NR%10==0' file.txt
Run Code Online (Sandbox Code Playgroud)
要在脚本中使用它,请将以下内容添加到名为的文件中script.awk:
BEGIN {
print "Processing file"
}
NR%10==0
END {
print "Finished processing"
}
Run Code Online (Sandbox Code Playgroud)
然后执行:
awk -f script.awk file.txt
Run Code Online (Sandbox Code Playgroud)
Kev*_*vin 16
有了sed,您可以使用该first~step命令轻松地对此进行大量修改.例如:
# Odd lines
sed -n 1~2p file
# Every tenth line (10, 20, 30, ...)
sed -n 10~10p file
# Every tenth line (1, 11, 21, ...)
sed -n 1~10p file
# First plus every tenth (1, 10, 20, 30, ...)
sed -n -e 1p -e 10~10p file
Run Code Online (Sandbox Code Playgroud)