我有兩個文本文件,每個文本文件都有3個字段。我需要在第三個字段中獲得具有相同值的行。第三個字段值在每個文件中都是唯一的。例如:bash-在兩個文件中獲取具有相同列值的所有行
file1的:
約翰一書300
2禮200
3克里斯100
4安600
file2的:
6凱文250
南希300
8約翰100
輸出:
約翰一書300
7南西300
3克里斯100
8約翰100
當我使用下面的命令:
cat file1 file2 | sort -k 3 | uniq -c -f 2
我從輸入文件中只獲得一個重複值的行。我需要兩個!
謝謝!你能告訴我它是如何工作的嗎? – ahb65 2014-09-30 20:40:22
@ user3490988 awk先讀取file1,將所有行保存在一個「hashtable」鍵值爲第3列,值爲行。然後處理第二個文件,檢查「hashtable」中file2.line的第三列是否被找到,打印相應的行(a [$ 3])和file2.line。如果你不知道awk的語法,很難詳細解釋。我建議你閱讀awk的手冊頁。 – Kent 2014-09-30 20:43:36