我有3个文件
文件1:
compute-0-44
compute-0-2
compute-0-7
compute-0-8
文件2:
0
11/29/2017 | 02:01:34
0
05/16/2018 | 08:47:56
文件3:
0
963
0
459
当我这样做时paste file1 file2 file 3
,我得到:
compute-0-44 0 0
compute-0-2 11/29/2017 | 02:01:34 963
compute-0-7 0 0
compute-0-8 05/16/2018 | 08:47:56 459
我想要的是:
compute-0-44 0 0
compute-0-2 11/29/2017 | 02:01:34 963
compute-0-7 0 0
compute-0-8 05/16/2018 | 08:47:56 459
可以用粘贴吗?如果有任何其他替代方案(例如 sed),也可以达到目的。
答案1
使用pr
命令:
$ pr -mT file{1..3} | expand
compute-0-44 0 0
compute-0-2 11/29/2017 | 02:01:34 963
compute-0-7 0 0
compute-0-8 05/16/2018 | 08:47:56 459
从man pr
:
-m, --merge print all files in parallel, one in each column, truncate lines, but join lines of full length with -J
管道expand
将制表符转换为空格 - 根据您的应用程序,您可能不需要它(我实际上只是在此处添加它以使输出在该站点上看起来格式正确)。
答案2
sed
如果该行不包含竖线,您可以使用3 个选项卡替换第二个选项卡:
paste file{1..3} | sed '/|/!s/\t/\t\t\t/2'