您好我试图在最后添加一个文件中的数据,但它不起作用我有一个带有此内容的final.txt
cat,dog,pig
我使用cat file1.txt >> final.txt
但我得到了这个
cat,dog,pig,car,plane,boat
我想要
cat,dog,pig
car,plane,boat
有可能获得这个吗?
答案 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的内置功能,这就是为什么运行上面的代码"修复"原始文件中缺少换行符。