バージョン管理システムを使用すると、差分に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"
前のコマンドの終了ステータスがゼロ以外の場合、ファイルに改行を追加します。
Ssh –Sshd_configのオプション`serveraliveinterval`と`clientaliveinterval`は正確に何をしますか?
Linux –なぜSuだけでなくSuを使用するのですか?