如何使用bash中的分隔符逐行合并两个文件

时间:2016-04-29 14:39:00

标签: unix awk

我想使用逗号分隔符合并两个输入文件并写入新文件。我怎样才能在bash中实现这一点?以下是示例数据。任何意见/建议将不胜感激。谢谢。

**

 - What I have tried?

**

paste -d ' , ' file1 file2 > file3

Input Data strong text

file1            file2
1,A               10    
2,B               20    
3,C               30

Desired Output

file3
1,A,10
2,B,20
3,C,30 

2 个答案:

答案 0 :(得分:2)

paste -d ' , ' file1 file2 > file3

答案 1 :(得分:0)

首先.....粘贴的意思是逐行地粘贴任意数量的文件。默认情况下,它将制表符放在每个文件的行之间。

  line-from-file-1<tab>line-from-file2<tab>line-from-file3

当您指定“ -d”时,请指定要使用的内容,而不是每个选项卡。因此,在粘贴三个文件时,需要两个分隔符,例如,-d'@#'将导致:

  line-from-file-1@line-from-file2#line-from-file3

因此,当您指定-d','时,表明您想要在第一个文件和第二个文件之间留一个空格,在第二个文件和第三个文件之间留一个逗号,并再次在第三个文件和第四个文件之间留一个空格...。发生。

有人提到了dos格式的行尾。我也碰到了。我用过:

  fromdos file1 

转换第一个文件的行尾。我从tofrodos软件包中获得了该工具。您奇怪的第二个文件是dos-line-ends,因为它们似乎以某种方式自动消失了。事先像这样处理两个输入文件将更加巧妙。