我正在尝试比较2个不同的文件,例如:
文件1:
CALL AA
CALL AB
CALL AC
文件2:
00 AB n
01 AA o
02 AC o
我期望的结果是 输出:
AA 01 o
AB 00 n
AC 02 o
如何在不更改第一个文件顺序的情况下获得此信息?(最好是在awk中)预先感谢您。
答案 0 :(得分:0)
awk 'NR==FNR {x=$1; $1="";a[x]=$0; next} {print $0,a[$3]}' Sourceports NATLog
到
awk 'NR==FNR {x=$2; $2="";a[x]=$0; next} {print $2,a[$2]}' file2 file1
输出:
AA 01 o AB 00 n AC 02 o
经过优化:
awk 'NR==FNR {a[$2]=$2 FS $1 FS $3; next} {print a[$2]}' file2 file1
现在输出,没有空列:
AA 01 o AB 00 n AC 02 o
请参阅:8 Powerful Awk Built-in Variables – FS, OFS, RS, ORS, NR, NF, FILENAME, FNR