儘管進行了所有研究,但這並不像我所期望的那樣工作。我必須失去了一些東西......使用Unix JOIN命令合併兩個文件
文件1 ...
# cat file1.csv
1 123 JohnDoe
1 456 BobDylan
1 789 BillyJean
文件2 ...
# cat file2.csv
111 123 DaddyDoe
222 456 DaddyDylan
666 777 Stranger
555 789 DaddyJean
444 888 Stranger
333 999 Stranger
我想參加第二場兩者。當我執行一個左外連接並且只包含第一個文件中的字段時,一切都顯得很花哨。
# join -1 2 -2 2 -a 1 -o 1.2 1.3 file1.csv file2.csv
123 JohnDoe
456 BobDylan
789 BillyJean
但是,只要我從第二個文件中包含一個字段,這一切都是怪人。
# join -1 2 -2 2 -a 1 -o 1.2 1.3 2.3 file1.csv file2.csv
DaddyDoeoe
DaddyDylann
789 BillyJean DaddyJean
最後一行看起來很完美!與其他人有什麼關係?任何想法?提前致謝!
編輯:這是我的嘗試與實際CSVs。
# cat file1.csv
1,123,JohnDoe
1,456,BobDylan
1,789,BillyJean
# cat file2.csv
111,123,DaddyDoe
222,456,DaddyDylan
666,777,Stranger
555,789,DaddyJean
444,888,Stranger
333,999,Stranger
# join -t, -1 2 -2 2 -a 1 -o 1.2 1.3 2.3 file1.csv file2.csv
,DaddyDoeoe
,DaddyDylann
789,BillyJean,DaddyJean
什麼版本的操作系統?並且是否真的用','來擴展每個文件的分隔符? – shellter
-o選項需要加引號,否則可以使用逗號分隔,而不是空格。不知道這是否是問題,但似乎是一個部分問題, – Suroot
@shellter Unix 3.5。它們是製表符分隔的文件。在嘗試排除故障時,我拿出了逗號。 @Suroot我給了這個鏡頭,但它似乎沒有改變任何東西。 – Nate