ファイルの末尾に改行文字を追加するには?

ファイルの末尾に改行文字を追加するには?

バージョン管理システムを使用しているときにdiffがと言うと、騒音のため迷惑になりますNo newline at end of file

だから疑問に思う:これらのメッセージを取り除くためにファイルの末尾に改行文字を追加する方法は?

ベストアンサー1

ここに:

sed -i -e '$a\' file

またはOS Xの場合sed

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

\nファイルの末尾に追加されます。ただすでに改行文字で終わっていない場合。したがって、2回実行すると、他の改行は追加されません。

$ cd "$(mktemp -d)"
$ printf foo > test.txt
$ sed -e '$a\' test.txt > test-with-eol.txt
$ diff test*
1c1
< foo
\ No newline at end of file
---
> foo
$ echo $?
1
$ sed -e '$a\' test-with-eol.txt > test-still-with-one-eol.txt
$ diff test-with-eol.txt test-still-with-one-eol.txt
$ echo $?
0

仕組み:

  • $ファイルの終わりを示します。
  • a\新しい行に次のテキスト(この場合は何もありません)を追加します。

つまり、最後の行に改行以外の文字が含まれている場合は改行を追加します。

おすすめ記事