尽管进行了所有研究,但这并不像我预期的那样有效.我肯定错过了什么...
档案1 ......
# cat file1.csv
1 123 JohnDoe
1 456 BobDylan
1 789 BillyJean
Run Code Online (Sandbox Code Playgroud)
档案2 ......
# cat file2.csv
111 123 DaddyDoe
222 456 DaddyDylan
666 777 Stranger
555 789 DaddyJean
444 888 Stranger
333 999 Stranger
Run Code Online (Sandbox Code Playgroud)
我想加入第二个领域.当我执行左外连接并且只包含第一个文件中的字段时,一切看起来都很花哨.
# join -1 2 -2 2 -a 1 -o 1.2 1.3 file1.csv file2.csv
123 JohnDoe
456 BobDylan
789 BillyJean
Run Code Online (Sandbox Code Playgroud)
但是只要我从第二个文件中包含一个字段,就会变得很糟糕.
# join -1 2 -2 2 -a 1 -o 1.2 1.3 2.3 file1.csv file2.csv
DaddyDoeoe
DaddyDylann
789 BillyJean DaddyJean
Run Code Online (Sandbox Code Playgroud)
最后一行看起来很完美!与他人有什么关系?任何的想法?提前致谢!
编辑:这是我尝试使用实际的CSV.
# 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
Run Code Online (Sandbox Code Playgroud)
你用过这个-a选项.
-a文件编号除默认输出外,还为文件file_number中的每个不可操作行生成一行.
此外,奇数覆盖行为表明您已嵌入回车符(\r).我会仔细检查那些fies cat -v或者是一个文本编辑器,它不会试图对Windows文件"聪明".