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

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

【问题讨论】:

标签: bash file command newline


【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-02-03
        • 1970-01-01
        • 1970-01-01
        • 2014-07-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多