将多个文本文件(行)合并到列中

时间:2020-05-04 17:58:27

标签: bash text

我有多个要逐列合并的文本文件。

例如:

文件1

0.698501 -0.0747351 0.122993 -2.13516

文件2

-5.27203 -3.5916 -0.871368 1.53945

我希望输出文件像这样:

0.698501, -5.27203
-0.0747351, -3.5916
0.122993, -0.871368
-2.13516, 1.53945

有没有一线的bash可以做到这一点?

我将不胜感激。 ---林兹(Lyndz)

2 个答案:

答案 0 :(得分:2)

使用awk:

awk '{if(NR==1) {split($0,a1," ")} else {split($0,a2," ")}} END{for(i in a2) print a1[i] ", " a2[i]}' file1 file2

输出:

0.698501, -5.27203
-0.0747351, -3.5916
0.122993, -0.871368
-2.13516, 1.53945

答案 1 :(得分:1)

paste <(cat file1 | sed -E 's/ +/&,\n/g') <(cat file2 | sed -E 's/ +/&\n/g') | column -s $',' -t | sed -E 's/\s+/, /g' | sed -E 's/, $//g'

它有点复杂,但我想它也可以用更简单的方式完成。

P.S:请查找每个命令的手册页,以了解它们的作用。

相关问题