如何使用bash从单独的文件中粘贴列?

ble*_*man 39 bash paste multiple-columns

使用以下数据:

$cat date1.csv
 Bob,2013-06-03T17:18:07
 James,2013-06-03T17:18:07
 Kevin,2013-06-03T17:18:07

$cat date2.csv
 2012-12-02T18:30:31
 2012-12-02T18:28:37
 2013-06-01T12:16:05
Run Code Online (Sandbox Code Playgroud)

如何合并date1.csv和date2.csv文件?所需输出:

$cat merge-date1-date2.csv
 Bob,2013-06-03T17:18:07,2012-12-02T18:30:31
 James,2013-06-03T17:18:07,2012-12-02T18:28:37
 Kevin,2013-06-03T17:18:07,2013-06-01T12:16:05
Run Code Online (Sandbox Code Playgroud)

请注意:最佳解决方案将能够快速管理大量的线路.

Car*_*rum 47

你跟上了paste(1):

$ paste -d , date1.csv date2.csv 
Bob,2013-06-03T17:18:07,2012-12-02T18:30:31
James,2013-06-03T17:18:07,2012-12-02T18:28:37
Kevin,2013-06-03T17:18:07,2013-06-01T12:16:05
Run Code Online (Sandbox Code Playgroud)

如果这些线上有前导空格,你的问题有点不清楚.如果你想在最终输出中摆脱它,你可以使用cut(1)它在粘贴之前剪掉它:

 $ cut -c 2- date2.csv | paste -d , date1.csv -
  Bob,2013-06-03T17:18:07,2012-12-02T18:30:31
  James,2013-06-03T17:18:07,2012-12-02T18:28:37
  Kevin,2013-06-03T17:18:07,2013-06-01T12:16:05
Run Code Online (Sandbox Code Playgroud)


jay*_*ngh 12

另一种方法是使用pr

pr -mts, file1 file2
Run Code Online (Sandbox Code Playgroud)

测试:

[jaypal:~/Temp] cat file1
Bob,2013-06-03T17:18:07
James,2013-06-03T17:18:07
Kevin,2013-06-03T17:18:07

[jaypal:~/Temp] cat file2
2012-12-02T18:30:31
2012-12-02T18:28:37
2013-06-01T12:16:05

[jaypal:~/Temp] pr -mts, file1 file2
Bob,2013-06-03T17:18:07,2012-12-02T18:30:31
James,2013-06-03T17:18:07,2012-12-02T18:28:37
Kevin,2013-06-03T17:18:07,2013-06-01T12:16:05
Run Code Online (Sandbox Code Playgroud)