【发布时间】:2016-08-15 14:51:29
【问题描述】:
我的输入文件(file1)如下所示:
part position col3 col4 info
part1 34 1 1 NAME=Mark;AGE=23;HEIGHT=189
part2 55 1 1 NAME=Alice;AGE=43;HEIGHT=167
part2 19 1 1 NAME=Emily;AGE=16;HEIGHT=164
part3 23 1 1 NAME=Owen;AGE=55;HEIGHT=181
part3 99 1 1 NAME=Rachel;AGE=76;HEIGHT=162
我需要检索 info 列中“NAME=”之后的文本,但前提是前两列中的值与另一个文件 (file2) 匹配。
part position
part2 55
part3 23
然后将只考虑第 2 行和第 4 行,并将这些行中“NAME=”之后的文本放入输出文件中:
Alice
Owen
我不需要保留原始行的顺序,所以下面的输出同样有效:
Owen
Alice
我的(不是很好)尝试:
awk -F, 'FNR==NR {a[$1]=$5; next}; $1 in a {print a[$1]}' file1 file2
【问题讨论】:
标签: awk