我有两个文件:
文件1
1
2
3
4
5
文件2
a 0 1 h f
b 0 3 h f
c 0 8 h f
d 0 5 h f
我想比较 file1 和 file2 的第 3 列,并像这样打印 file2 的整行
a 0 1 h f
b 0 3 h f
d 0 5 h f
我尝试使用awk
,但我正在打印column3:
awk 'NR == FNR {f2[$3]=$1; next} $1 in f2{print f2[$1],$1}' file2 file1
如何打印 file2 中的整行?
最佳答案
如果你先给出file1
,会容易得多:
$ awk 'NR==FNR{a[$1];next}$3 in a' file1 file2
a 0 1 h f
b 0 3 h f
d 0 5 h f
这样,如果字段三中的值在 file1
中,您就可以轻松打印 file2
中的整行。 awk
中的默认 block 是 {print $0}
,因此可以从 a{print $0} 中的 $3 中省略。
关于unix - 比较列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15817568/