GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menambahkan baris baru ke akhir file?

Menggunakan sistem kontrol versi, saya merasa terganggu dengan kebisingan saat perbedaan mengatakan No newline at end of file .

Jadi saya bertanya-tanya:Bagaimana cara menambahkan baris baru di akhir file untuk menghilangkan pesan tersebut?

Jawaban yang Diterima:

Untuk membersihkan proyek secara rekursif, saya menggunakan oneliner ini:

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

Penjelasan:

  • git ls-files -z daftar file dalam repositori. Dibutuhkan pola opsional sebagai parameter tambahan yang mungkin berguna dalam beberapa kasus jika Anda ingin membatasi operasi ke file/direktori tertentu. Sebagai alternatif, Anda dapat menggunakan find -print0 ... atau program serupa untuk membuat daftar file yang terpengaruh – pastikan itu memancarkan NUL -entri yang dibatasi.

  • while IFS= read -rd '' f; do ... done iterasi melalui entri, dengan aman menangani nama file yang menyertakan spasi dan/atau baris baru.

  • tail -c1 < "$f" membaca karakter terakhir dari sebuah file.

  • read -r _ keluar dengan status keluar bukan nol jika baris baru tambahan tidak ada.

  • || echo >> "$f" menambahkan baris baru ke file jika status keluar dari perintah sebelumnya bukan nol.


Linux
  1. Cara memperbarui/menambahkan file di Gambar Docker

  2. CentOS / RHEL :Bagaimana cara menambahkan file swap

  3. Bagaimana saya bisa menghapus baris baru jika itu adalah karakter terakhir dalam file?

  1. Bagaimana cara menambahkan output ke file?

  2. Bagaimana saya bisa menambahkan string ke awal setiap file dalam folder di bash?

  3. Bagaimana cara mengarahkan output dari system() ke file?

  1. tr perintah - cara mengganti string \n dengan baris baru yang sebenarnya (\n)

  2. Bagaimana cara menambahkan file .so ke java.library.path di Linux

  3. Bagaimana menemukan pengelola file default?