GNU/Linux >> Linux の 問題 >  >> Linux

ファイルの最後に改行を追加するにはどうすればよいですか?

バージョン管理システムを使用すると、差分にNo newline at end of fileと表示されると、ノイズに悩まされます。 。

だから私は疑問に思っていました:それらのメッセージを取り除くためにファイルの最後に改行を追加するにはどうすればよいですか?

承認された回答:

プロジェクトを再帰的にサニタイズするために、私はこのワンライナーを使用します:

git ls-files -z | while IFS= read -rd '' f; do tail -c1 < "$f" | read -r _ || echo >> "$f"; done

説明:

  • git ls-files -z リポジトリ内のファイルを一覧表示します。追加のパラメータとしてオプションのパターンを取ります。これは、操作を特定のファイル/ディレクトリに制限する場合に役立つ場合があります。別の方法として、find -print0 ...を使用することもできます または影響を受けるファイルを一覧表示する同様のプログラム– NULを出力することを確認してください -区切られたエントリ。

  • while IFS= read -rd '' f; do ... done エントリを反復処理し、空白や改行を含むファイル名を安全に処理します。

  • tail -c1 < "$f" ファイルから最後の文字を読み取ります。

  • read -r _ 末尾の改行が欠落している場合は、ゼロ以外の終了ステータスで終了します。

  • || echo >> "$f" 前のコマンドの終了ステータスがゼロ以外の場合、ファイルに改行を追加します。


Linux
  1. Linuxでファイルの終わりにテキストを追加する方法

  2. CentOS / RHEL :スワップ ファイルを追加する方法

  3. ファイルの最後の文字である改行を削除するにはどうすればよいですか?

  1. Ubuntuでスワップファイルを追加する方法

  2. Bash:改行なしでファイルの末尾に文字列を追加します

  3. tr コマンド - 文字列 \n を実際の改行 (\n) に置き換える方法

  1. Docker イメージ内のファイルを更新/追加する方法

  2. 出力をファイルに追加する方法は?

  3. bashのフォルダ内の各ファイルの先頭に文字列を追加するにはどうすればよいですか?