我想使用 linux bash 中的粘贴命令将三个文件粘贴到一个文件中,每个文件之间有两个空格:
paste -d '\n\n' file1.txt file2.txt file3.txt > output.txt
paste -d '\n'
然而,和之间根本没有区别paste -d '\n\n'
。
假设 file1 由单个数字“1”组成,file2 由“2”组成,file3 由“3”组成,我总是得到以下结果:
1
2
3
但我想要:
1
2
3
为什么我的代码不起作用?
答案1
中只有一个角色-d
来替换输入中的每个换行符。引用POSIX 文档对于实用程序(粗体我的):
-d list
...这些元素指定要使用的一个或多个分隔符,而不是默认的 <tab>,以替换输入行的 <newline>。中的元素列表应循环使用;也就是说,当列表耗尽时,将重用列表中的第一个元素。 ...
要实现您正在寻找的目标(无需切换到不同的工具,根据您的实际用例,这些工具可能更有效),您可以使用:
paste -d '\n' file1.txt /dev/null file2.txt /dev/null file3.txt /dev/null
(请注意,与您的预期结果相比,这还会添加您可能不想要的最终换行符)。