我想根据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
答案 0 :(得分:2)
awk '{ if($2 > 20) { print FILENAME " " $1 } }' <files>
答案 1 :(得分:1)
这可能对您有用:
awk '$2>20{print $1}' file1 file2
如果你想要文件名和更漂亮的打印:
awk 'FNR==1{print FILENAME} $2>20{print " ",$1}' file1 file2
答案 2 :(得分:0)
awk '$2>20{if(file!=FILENAME){print FILENAME;file=FILENAME}print}' file1 file2
见下文:
> awk '$2>20{if(file!=FILENAME){print FILENAME;file=FILENAME}print}' file1 file2
file1
alias 23
george 24
file2
david 25