1

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
4

3 に答える 3

2

awk '{ if($2 > 20) { print FILENAME " " $1 } }' <files>

于 2012-08-21T14:30:05.193 に答える
1

これはあなたのために働くかもしれません:

awk '$2>20{print $1}' file1 file2

ファイル名ときれいな印刷が必要な場合:

awk 'FNR==1{print FILENAME} $2>20{print "    ",$1}' file1 file2
于 2012-08-22T06:23:39.450 に答える
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
于 2012-08-22T06:06:50.223 に答える