在 bash 中使用粘贴命令创建两行新行

在 bash 中使用粘贴命令创建两行新行

我想使用 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

(请注意,与您的预期结果相比,这还会添加您可能不想要的最终换行符)。

相关内容