我想比較基於公共列的兩個文件(第一個文件中的$ 2和第二個文件中的$ 4),並從兩個文件中打印匹配的記錄,但是與awk,我正在使用的是,它只打印第二個文件的記錄。需要幫助理解awk命令來結合兩個文件
任何人都可以提供解決方案嗎? file1的
111,abc
222,abc
111,bcd
file2的
1,123,345,abc
2,234,232,bcd
2,hhh,343,bcd
期望的輸出:
111,abc,1,123,345,abc
222,abc,1,123,345,abc
111,bcd,2,234,232,bcd
111,bcd,2,hhh,343,bcd
與下面AWK指令i得到輸出中這樣
awk -F, 'NR==FNR {a[$2];next } (($4) in a) {print $0","a[$1]}' file file2
1,123,345,abc,
2,234,232,bcd,
2,hhh,343,bcd,
不getitng在任何值一個[$ 1]在輸出中。
你能否讓你的標題更具描述性?你能正確地格式化你的代碼嗎? – djechlin 2014-08-31 12:57:02
可能'awk'不是這裏最好的工具,你可以試試'join'。此外,請注意匹配行上的邏輯有點模糊,因爲要打印與file1上的第4列匹配的所有內容,所以最好先存儲file2,然後在file1中循環打印所需的值。 – fedorqui 2014-08-31 13:03:15