在 bash 文件末尾添加换行符

Posted

技术标签:

【中文标题】在 bash 文件末尾添加换行符【英文标题】:Add new line character at the end of file in bash 【发布时间】:2014-05-28 03:52:26 【问题描述】:

如何使用 bash 命令行在名为 file.txt 的文件末尾添加换行符。 我尝试使用echo,但它不正确。你能告诉我我该怎么做吗?

【问题讨论】:

见unix.stackexchange.com/questions/31947/… 【参考方案1】:
echo "" >> file.txt

在末尾添加换行符

【讨论】:

非常简单,速度极快,即使在非常大的文件上也是如此。 >> 似乎总是快速追加。 echo >> file.txt 也可以,你不需要"" 部分。【参考方案2】:

sed:

sed -i '' -e '$a\' file.txt

echo:

echo  >> file.txt

【讨论】:

我不认为awk 一个是正确的。这将为file.txt 的每一行创建一个文件,该文件以该行的内容命名,并包含一个换行符... sed -i '$a\' file.txt 就够了【参考方案3】:

使用 Vi,它会在文件保存时在 EOF 处自动创建 EOL。

例如:

vi -escwq foo.txt

或:

ex -scwq foo.txt

要更正多个文件,请检查:How to fix 'No newline at end of file' for lots of files? 在 SO

【讨论】:

【参考方案4】:

GNU bash,版本 3.2.57(1)-release (x86_64-apple-darwin14)

echo \ >> file.txt

【讨论】:

添加空格和换行符。 啊,是的,你是对的。它将空格附加到新行之前的行。很好的收获。【参考方案5】:

这对我有用。

sed -i -z 's/$/\n/g' file.txt

【讨论】:

【参考方案6】:

这适用于centos,上面的空字符串没有。

sed -i -e '$a\' file

【讨论】:

以上是关于在 bash 文件末尾添加换行符的主要内容,如果未能解决你的问题,请参考以下文章

正常shell bash脚本文件最后一行末尾是否应该添加换行符?(应该另起一行)

为啥我必须费心在每个文件的末尾添加换行符?

Set-Content在我的文件末尾添加换行符(换行符,CRLF)

“文件末尾没有换行符”日志的意义是啥?

如果在文件末尾省略PHP块的结束标记,是否会删除任何换行符或空格(如果存在于相应的文件中)?

在 curl 响应正文的末尾自动添加换行符