2013-07-06 85 views
-1

我有兩個文件。在每個文件中,我有兩列。我需要將file1的第二列的第一個值與file2的第二列的每個值匹配。如果它們相等,我需要將兩列(file1和file2中的第一列)放在一個文件中,但它們應該彼此相鄰。如果兩個值不匹配,則什麼也不做。匹配兩列並將它們放在一個文件中

文件1

344 0 
465 1 
729 2 
777 3 
676 4 
862 5 

文件2

766 0 
937 1 
980 2 
837 3 
936 5 

輸出示例:

344 766 
465 937 
729 980 
777 837 
862 936 
+2

我必須是某種吸盤,這是我第二次爲你格式化一個問題 – iruvar

+0

你卡在哪一部分?如果你分享你的代碼,我們可以幫你修復它。 – Johnsyweb

+1

@ 1_CR:它發生 - 如果您巡視特定用戶提問的標籤,您可以多次重新格式化他們的問題。當用戶仍然試圖對問題做出自己的改變並且不斷失去努力時,這是最令人憤慨的。你必須尊重他們所做的,但是......好吧,這可能很煩人。最好等到他們停止編輯,然後進行修改。我經常保存我使用命令-A編輯的內容,選擇所有材質和命令-C來複制(control-A,control-C在Windows,Linux );然後粘貼回去。 –

回答

2

如果你堅持這樣可以在awk

awk 'NR == FNR {arr[$2] = $1; next} {if ($2 in arr){print(arr[$2], $1)}}' file1 file2 
2
awk 'NR==FNR { values[$2] = $1; next; } 
      { if ($2 in values) print values[$2], $1 }' file1 file2 

雖然記錄編號等於文件記錄編號(讀取第一個文件時),但在第一列中存儲值values[$2],跳到下一個記錄。在處理第二個文件時,如果values[$2]中有值,請輸出values[$2]$1中的值。

相關問題