我以这种方式输入了input_file.txt:
1
0.421934 0.421622 384000
0.419202 0.418349 384000
0.422398 0.422148 384000
0.422691 0.422789 384000 D
0.427295 0.426805 384000
0.424004 0.423169 384000
0.428237 0.428279 384000
2
0.422842 0.422462 576000
0.420401 0.419927 576000
0.42179 0.421462 576000
0.424359 0.424637 576000 F
0.425756 0.425569 576000
0.421996 0.421274 576000
0.428395 0.428422 576000
我想将output_file.txt设为:
1 0.422691 0.422789 384000 D
2 0.424359 0.424637 576000 F
(我只用字母D和F来表示我想要的两行)
我怎么能用awk做到这一点?
谢谢
答案 0 :(得分:1)
如果您想在NF=1
之后选择第四行(并将其与对应于NF==1
的行一起打印),则选项可以是:
gawk 'NF==1{f=4;g=$1;next;} !(--f){print g,$0;}' input_file.txt
答案 1 :(得分:1)
将要打印的记录标记为变量(下面为nr
)并将其与NR
进行比较:
$ awk 'NF==1{nr=NR+4} NR==nr' file
0.422691 0.422789 384000 D
0.424359 0.424637 576000 F