从文本文件中提取特定行

时间:2018-02-22 03:57:36

标签: bash awk sed

我的.txt文件中有一个数据,如下所示,我想提取值为12的行并将其复制到新的.txt文件中。我尝试了sed,但可以得到结果,任何帮助将不胜感激。感谢

"944760 1939"   10
"944760 1940"   12
"946120 1940"   2
"946370 1939"   10
"946370 1940"   12
"946460 1940"   6
"946530 1939"   10

2 个答案:

答案 0 :(得分:4)

为什么不在搜索论坛之前发布这么多帖子

awk '$3 == 12' infile > outfile

相同
awk '$3 == 12 { print }' infile > outfile 

<强>解释

  • $3 == 12如果第3列等于12,则打印此类记录/行

答案 1 :(得分:3)

关注简单awk可能对您有所帮助:

awk '$NF==12{print $0 > "new_file"}'   Input_file

<强> 说明:

$NF==12:如果最后一个字段的值为12,则检查条件是否条件为TRUE,然后执行进一步/后续语句。

{print $0 > "new_file"}:将当前行($ 0)值打印到名为

的输出文件

new_file(您也可以根据自己的意愿更改其名称)。

Input_file:这里提到输入文件名。

解决方案第3名:根据karafka先生的评论,现在也添加了这个。

awk'$NF==12' Input_file > "new_file"