从文本文件中提取特定行

sai*_*ran 5 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
Run Code Online (Sandbox Code Playgroud)

Aks*_*gde 6

为什么不直接搜索论坛,在这里发帖之前,重复了这么多帖子

awk '$3 == 12' infile > outfile
Run Code Online (Sandbox Code Playgroud)

这与

awk '$3 == 12 { print }' infile > outfile 
Run Code Online (Sandbox Code Playgroud)

解释

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


Rav*_*h13 5

以下简单awk可能对您有所帮助:

awk '$NF==12{print $0 > "new_file"}'   Input_file
Run Code Online (Sandbox Code Playgroud)

解释:

$NF==12:如果最后一个字段的值是12表示条件为真,则在此处检查条件,然后执行进一步/以下语句。

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

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

Input_file: 在这里提到 Input_file 名称。

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

awk'$NF==12' Input_file > "new_file"
Run Code Online (Sandbox Code Playgroud)

  • 惯用的版本是`awk '$NF==12' file > newfile` (4认同)