我有:
file1.txt file2.txt file3.txt
8 2 2
1 2 1
8 1 0
3 3
5 3
3
4
我想在ofile.txt中粘贴所有这三列
我试过
paste file1.txt file2.txt file3.txt > ofile.txt
结果我进入了ofile.txt:
ofile.txt:
8 2 2
1 2 1
8 1 0
3 3
5 3
3
4
哪个应该来
ofile.txt
8 2 2
1 2 1
8 1 0
3 3
5 3
3
4
答案 0 :(得分:1)
当我使用制表符创建输入文件时,我可以重现您的输出。

粘贴也使用列之间的标签,并按照他认为的方式进行操作。
当我更换时,您会看到结果选项卡包含 -
:
#more x * | tr'\ t'' - '
 ::::::::::::::
 X1
 ::::::::::::::
 -1a
 -1b
 -1c
 -1d
 ::::::::::::::
 X2
 ::::::::::::::
 -2a
 -2b
 ::::::::::::::
 X3
 ::::::::::::::
 -3a
 -3b
 -3c
 -3d
 -3E
 -3F
 -3G
 #paste x? | tr'\ t'' - '
 -1a - 图2a - 图3a
 -1b - 2B - 3B
 -1C --- 3C
 -1d --- 3D
 --- 3E
 --- 3F
 --- 3g



 想想你想要的样子。如果需要正确的缩进,则需要为带有较少行的文件添加带有制表符的行。或者操作结果:3个标签分为4行和4个标签,行开头为5个标签。


 sed -e's / \ t \ t \ t / \ t \ t \ t \ t /'-e's / ^ \ t \ t \ t \ t \ \ t \ t \ t \ t \ t \ t \ t \ t&t

预>

答案 1 :(得分:1)
您可以使用流程替换在paste
中尝试此bash
命令:
paste <(sed 's/^[[:blank:]]*//' file1.txt) file2.txt file3.txt
8 2 2
1 2 1
8 8 0
3 3
5 3
3
4
sed
命令用于从file1.txt
中删除前导空格。