使用awk从文本文件中提取值

时间:2012-08-21 14:23:19

标签: 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

3 个答案:

答案 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