在bash中在文件末尾添加新行字符

71

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


6
请参阅 http://unix.stackexchange.com/questions/31947/how-to-add-a-newline-to-the-end-of-a-file,该页面讨论如何在文件末尾添加换行符。 - TheWalkingCube
6个回答

117
echo "" >> file.txt

在末尾添加换行符


非常简单和非常快,即使在非常大的文件上也是如此。>>似乎总是很快地进行追加。 - T. Brian Jones
10
echo >> file.txt 也可以,不需要 "" 部分。 - user3064538

20

sed 命令:

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

使用 echo 命令:

echo  >> file.txt

我认为 awk 的方法不正确。这将为 file.txt 的每一行创建一个文件,文件名为该行的内容,并包含一个单独的换行符... - twalberg
sed -i '$a\' file.txt就足够了。 - CervEd
1
@CervEd -i '' 是给Mac用户用的,-i 则是给其他人使用的。 - villasv
在 macOS 13.4 上的 sed 命令有变化吗?我无法让它正常工作。 - Michael Johnston

4

4
GNU bash,版本3.2.57(1)发布(x86_64-apple-darwin14)。
echo \ >> file.txt

4
这将添加一个空格字符和一个换行符。 - Anthony Geoghegan
1
啊,是的,你说得对。它将空格添加到新行之前的行。发现得好。 - jusopi

3

这对我有效。

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

2
这适用于CentOS,但上面的空字符串不行。
sed -i -e '$a\' file

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接