GNU/Linux >> Linux Esercitazione >  >> Linux

Come aggiungere una nuova riga alla fine di un file?

Usando i sistemi di controllo della versione mi infastidisce il rumore quando la differenza dice No newline at end of file .

Quindi mi chiedevo:come aggiungere una nuova riga alla fine di un file per eliminare quei messaggi?

Risposta accettata:

Per sanificare ricorsivamente un progetto utilizzo questo oneliner:

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

Spiegazione:

  • git ls-files -z elenca i file nel repository. Richiede un modello opzionale come parametro aggiuntivo che potrebbe essere utile in alcuni casi se si desidera limitare l'operazione a determinati file/directory. In alternativa, puoi usare find -print0 ... o programmi simili per elencare i file interessati:assicurati solo che emetta NUL -voci delimitate.

  • while IFS= read -rd '' f; do ... done scorre le voci, gestendo in sicurezza i nomi di file che includono spazi bianchi e/o nuove righe.

  • tail -c1 < "$f" legge l'ultimo carattere da un file.

  • read -r _ esce con uno stato di uscita diverso da zero se manca una nuova riga finale.

  • || echo >> "$f" aggiunge una nuova riga al file se lo stato di uscita del comando precedente era diverso da zero.


Linux
  1. Come aggiornare/aggiungere un file nell'immagine Docker

  2. Come aggiungere l'output a un file?

  3. Come posso aggiungere una stringa all'inizio di ogni file in una cartella in bash?

  4. Come reindirizzare l'output di system() su un file?

  5. Come aggiungere il file .so a java.library.path in Linux

Come utilizzare il comando md5sum in Linux

Come utilizzare il comando touch in Linux

Come aggiungere testo all'inizio del file in Linux

Come aggiungere un'applicazione al Dock nel sistema operativo elementare

Come aggiungere un file di scambio su Ubuntu 20.04

Come trovare il file manager predefinito?