Bash 使用join基于同一列合并2个csv文件

Bash 使用join基于同一列合并2个csv文件,bash,csv,join,merge,Bash,Csv,Join,Merge,我一直在尝试将两个csv文件与基于它们共享的列名的字母数字数据相结合,这样我就可以使用终端对它们执行类似于连接的操作 以下是我尝试的:(我的两个文件的第一列是相同的) 加入-t,-1 1-2 1文件\u 1.csv文件\u 2.csv>文件\u 3.csv 合并进行得很好,我的列被合并了,但不是我想要的格式 问题: 文件_3由两个文件的行组成,虽然用逗号分隔,但在单独的行中 例如: Columns from file_1 ,Columns from file_2 R

我一直在尝试将两个csv文件与基于它们共享的列名的字母数字数据相结合,这样我就可以使用终端对它们执行类似于连接的操作

以下是我尝试的:(我的两个文件的第一列是相同的)

加入-t,-1 1-2 1文件\u 1.csv文件\u 2.csv>文件\u 3.csv

合并进行得很好,我的列被合并了,但不是我想要的格式

问题: 文件_3由两个文件的行组成,虽然用逗号分隔,但在单独的行中

例如:

     Columns from file_1
     ,Columns from file_2
     Row1 from file_1
     ,Row1 from file_2
     Row2 from file_1
     ,Row2 from file_2
对于每行合并,如何在一行中获取文件_3数据?如有任何继续进行的指示,将不胜感激

文件_1.csv:(样本数据)

文件_2.csv:(样本数据)

错误连接:

Id,Age,Employment,Education,Marital,Occupation,Income,Gender,Deductions,Hours,Adjusted
,Adjusted,Predicted_Adjusted,Probability_0,Probability_1
1,38,Private,College,Unmarried,Service,81838,Female,0,72,0
,0,0,0.952957896225136,0.0470421037748636
2,35,Private,Associate,Absent,Transport,72099,Male,0,30,0
,0,0,0.973664421132328,0.0263355788676716
3,32,Private,HSgrad,Divorced,Clerical,154676.74,Male,0,40,0
,0,0,0.966224074718457,0.0337759252815426
预期产出: 每两行实际上是一行,因此预期的输出不应将行拆分为两行,而应表示两个csv文件(即文件_1和文件_2)的同质合并。这应起作用:

join -t , -1 1 -2 1 file_1.csv file_2.csv|paste -d' ' - - > file_3.csv

文件是否以windows行结尾
\r


您可以按建议尝试
dos2unix文件\u 1.csv
dos2unix文件\u 2.csv

。都一样。文件_3仍然在单独的行中显示数据。您希望所有内容都在一行中吗?还是仅将2行聚在一行中,将每2行聚在一行中。如上面的示例所示,每一组两行实际上是一整行。因此,我试图获得相同的结果。旁注:
-11-21
可能只是
-1
没有windows行结尾的文件
\r
?您可以尝试
dos2unix文件_1.csv
(我无法复制您的输出)。谢谢!这就是陷阱。正如您所怀疑的,我的两个文件都有windows行结尾。使用dos2unix并将它们转换为ASCII文本,联接工作得非常好。你能把你的建议作为一个单独的答案贴在下面吗?这样我就可以“接受”它了如果您在问题中添加一小段示例数据以及该数据的预期输出,那就太好了。@hek2mgl谢谢您指出这一点。我根据你的建议添加了它,以便帮助其他面临类似问题的人。
Id,Age,Employment,Education,Marital,Occupation,Income,Gender,Deductions,Hours,Adjusted
,Adjusted,Predicted_Adjusted,Probability_0,Probability_1
1,38,Private,College,Unmarried,Service,81838,Female,0,72,0
,0,0,0.952957896225136,0.0470421037748636
2,35,Private,Associate,Absent,Transport,72099,Male,0,30,0
,0,0,0.973664421132328,0.0263355788676716
3,32,Private,HSgrad,Divorced,Clerical,154676.74,Male,0,40,0
,0,0,0.966224074718457,0.0337759252815426
join -t , -1 1 -2 1 file_1.csv file_2.csv|paste -d' ' - - > file_3.csv