Join
使用 comm cmd 在一行中列印常用文本?
我有 2 個包含 numbers_ID、status、descration 的文件我想根據數字加入這兩個文件
number_123, status1, status2
我的文件1:
number_123,this car is under maintenance number_345,this car checked is done number_356,this car is under main
我的文件2:
number_123,hold number_345,done
我只需要將兩個文件中的現有號碼加入為:
number_123,hold,this car is under maintenance number_345,done,this car checked is done
我使用 comm file1 file2 來查找公共數字,但文件看起來像:
number_123,this car is under maintenance number_123,hold number_345,this car checked is done number_345,done
如何將其列印在一行中
number_123,hold,this car is under maintenance number_345,done,this car checked is done
該
comm
實用程序用於比較文件之間的整行。你想要做的是加入一個特定的領域。$ join -t, file2 file1 number_123,hold,this car is under maintenance number_345,done,this car checked is done
這假設兩個文件都在連接欄位(每個文件中的第一個逗號分隔列)上排序。
如果文件未排序,您可以使用預排序它們
sort -t, -k1,1 -o file1 file1 sort -t, -k1,1 -o file2 file2
在
ksh93
,bash
或zsh
中,您也可以“即時”進行排序:join -t, <( sort -t, -k1,1 file2 ) <( sort -t, -k1,1 file1 )