你能帮忙写下一个awk脚本吗? 我有两个文件,我需要比较两个字段?例如:
文件1:
asdf 1.1.1.1
qwert 2.2.2.2
kjldjf 3.3.3.3
jkhkdhsfk 4.4.4.4
file2的:
asdf 1.1.1.5
qwert 2.2.2.5
kjldjf 3.3.3.3
jkhkdhsfk 4.4.4.4
我需要打印file1的字段1与file2 AND的字段1匹配的所有条目 同时,file1的字段2与file2的字段2不匹配。 例如,我需要获得以下几行:
asdf 1.1.1.1 -> 1.1.1.5
qwert 2.2.2.2 -> 2.2.2.5
提前感谢!
答案 0 :(得分:2)
通常情况下,我不会回答这么大胆的免费订单,但我很好奇并尝试了它:
$ awk 'NR==FNR{a[$1]=$2; next} a[$1]!=$2{print $1,a[$1],$2}' file1 file2
asdf 1.1.1.1 1.1.1.5
qwert 2.2.2.2 2.2.2.5
答案 1 :(得分:1)
<强>输入强>
$ cat f1
asdf 1.1.1.1
qwert 2.2.2.2
kjldjf 3.3.3.3
jkhkdhsfk 4.4.4.4
$ cat f2
asdf 1.1.1.5
qwert 2.2.2.5
kjldjf 3.3.3.3
jkhkdhsfk 4.4.4.4
<强>输出强>
$ awk 'FNR==NR{a[$1]=$2;next}$1 in a && $2!=a[$1]{print $1,a[$1],"->",$2}' f1 f2
asdf 1.1.1.1 -> 1.1.1.5
qwert 2.2.2.2 -> 2.2.2.5