使用awk从文本文件中提取值
我想根据column2的值从文本文件中提取column1。只有当column2大于20时,我才需要打印column1。我还需要打印带有输出的文件名。我怎样才能用awk做到这一点使用awk从文本文件中提取值,awk,Awk,我想根据column2的值从文本文件中提取column1。只有当column2大于20时,我才需要打印column1。我还需要打印带有输出的文件名。我怎样才能用awk做到这一点 file1.txt alias 23 samson 10 george 24 file2.txt andrew 12 susan 16 david 25 desired output file1 alias george file2 david awk'{if($
file1.txt
alias 23
samson 10
george 24
file2.txt
andrew 12
susan 16
david 25
desired output
file1
alias
george
file2
david
awk'{if($2>20){打印文件名“$1}}'
见下文:
> awk '$2>20{if(file!=FILENAME){print FILENAME;file=FILENAME}print}' file1 file2
file1
alias 23
george 24
file2
david 25
这可能适合您:
awk '$2>20{print $1}' file1 file2
如果您想要文件名和更漂亮的打印:
awk 'FNR==1{print FILENAME} $2>20{print " ",$1}' file1 file2
更好的办法是,去掉“如果”和外面的一对括号。@Lars Kotthoff谢谢你的回答。文件名不随输出一起打印。相反,文件的内容正在打印。哦,对不起,这是一个打字错误——它应该是没有$的文件名。我会解决的。
awk 'FNR==1{print FILENAME} $2>20{print " ",$1}' file1 file2