使用Awk解析文本文件

时间:2018-05-17 15:15:14

标签: parsing awk

我想解析一个感兴趣的部分的文本文件,如下所示:

mesh 0 400 12000
400 300 400
1 0 -1
300 500 600
0 0 1
etc....
12000
1300
1100
etc..

我只希望紧跟在以字符串mesh开头的行之后的行以及之后的所有其他行,并且有3列。我希望此输出位于具有修改名称的单独文本文件中。

所需的输出文本文件:

400 300 400
300 500 600

我尝试用python和循环来做这个,但它花了几个小时而且从未完成,因为原始文本文件中有数千到数十万行。

使用awk使用bash脚本有更有效的方法吗?

1 个答案:

答案 0 :(得分:0)

awk救援!

$ awk '/^mesh/{n=NR;next} NF==3 && n && NR%2==(n+1)%2' file > filtered_file
400 300 400
300 500 600