GNU/Linux >> Znalost Linux >  >> Linux

Jak přidat nový řádek na konec souboru?

Při používání systémů pro správu verzí mě rozčiluje hluk, když rozdíl říká No newline at end of file .

Tak mě napadlo:Jak přidat nový řádek na konec souboru, abyste se zbavili těchto zpráv?

Přijatá odpověď:

K rekurzivní dezinfekci projektu používám tento oneliner:

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

Vysvětlení:

  • git ls-files -z seznam souborů v úložišti. Jako další parametr bere volitelný vzor, ​​který může být užitečný v některých případech, pokud chcete omezit operaci na určité soubory/adresáře. Jako alternativu můžete použít find -print0 ... nebo podobné programy pro seznam dotčených souborů – jen se ujistěte, že generuje NUL -oddělené položky.

  • while IFS= read -rd '' f; do ... done iteruje záznamy a bezpečně zpracovává názvy souborů, které obsahují mezery a/nebo nové řádky.

  • tail -c1 < "$f" přečte poslední znak ze souboru.

  • read -r _ ukončí se s nenulovým stavem ukončení, pokud chybí nový řádek na konci.

  • || echo >> "$f" připojí k souboru nový řádek, pokud byl stav ukončení předchozího příkazu nenulový.


Linux
  1. Jak aktualizovat/přidat soubor v Docker Image

  2. CentOS / RHEL :Jak přidat odkládací soubor

  3. Jak připojit výstup do souboru?

  1. Jak mohu přidat řetězec na začátek každého souboru ve složce v bash?

  2. Jak přesměrovat výstup system() do souboru?

  3. Jak přidat soubor .so do java.library.path v Linuxu

  1. Jak přidat text na konec souboru v Linuxu

  2. Jak přidat odkládací soubor na Ubuntu

  3. Jak mohu přidat běžného uživatele do souboru sudoers?