在新行bash中添加数据

时间:2016-11-11 15:23:03

标签: bash shell

您好我试图在最后添加一个文件中的数据,但它不起作用我有一个带有此内容的final.txt

cat,dog,pig

我使用cat file1.txt >> final.txt

但我得到了这个

cat,dog,pig,car,plane,boat

我想要

cat,dog,pig
car,plane,boat

有可能获得这个吗?

2 个答案:

答案 0 :(得分:0)

echo >> final.txt && cat file1.txt >> final.txt

答案 1 :(得分:0)

让我们先谈谈原始代码无法正常工作的原因,因为这可能会在将来给您带来问题:您的原始final.txt文件并未以换行符结束(即,在文件的末尾没有多余的空白行)。这是一个POSIX标准(参见:Why should text files end with a newline?),当处理不以换行符结尾的文本文件时,许多程序将无法正常工作。

因此,从现在开始,建议始终使用换行符结束文本文件。

现在,为了解决手头的情况,你可以运行这段代码:

echo >> final.txt && cat file1.txt >> final.txt

这将修复原始文本最后一行缺少换行符,从而允许echo命令按预期工作(将数据添加到新行中)。

重要提示:默认情况下(在大多数Bash版本中),echo命令会在插入的任何内容的末尾添加换行符。因此,当您运行命令" echo>> final.txt",它将在最后一行的末尾添加换行符。这是echo的内置功能,这就是为什么运行上面的代码"修复"原始文件中缺少换行符。