GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo agregar una nueva línea al final de un archivo?

Al usar sistemas de control de versiones, me molesta el ruido cuando la diferencia dice No newline at end of file .

Así que me preguntaba:¿Cómo agregar una nueva línea al final de un archivo para deshacerme de esos mensajes?

Respuesta aceptada:

Para desinfectar recursivamente un proyecto, uso este oneliner:

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

Explicación:

  • git ls-files -z enumera los archivos en el repositorio. Toma un patrón opcional como parámetro adicional que puede ser útil en algunos casos si desea restringir la operación a ciertos archivos/directorios. Como alternativa, podría usar find -print0 ... o programas similares para enumerar los archivos afectados; solo asegúrese de que emita NUL -entradas delimitadas.

  • while IFS= read -rd '' f; do ... done itera a través de las entradas, manejando de forma segura los nombres de archivo que incluyen espacios en blanco y/o líneas nuevas.

  • tail -c1 < "$f" lee el último carácter de un archivo.

  • read -r _ sale con un estado de salida distinto de cero si falta una nueva línea final.

  • || echo >> "$f" agrega una nueva línea al archivo si el estado de salida del comando anterior era distinto de cero.


Linux
  1. Cómo actualizar/agregar un archivo en la imagen de Docker

  2. ¿Cómo puedo eliminar una nueva línea si es el último carácter de un archivo?

  3. ¿Cómo agregar la salida a un archivo?

  4. ¿Cómo puedo agregar una cadena al comienzo de cada archivo en una carpeta en bash?

  5. Cómo agregar el archivo .so a java.library.path en Linux

Cómo usar el comando md5sum en Linux

Cómo usar el comando táctil en Linux

Cómo agregar texto al comienzo del archivo en Linux

Cómo agregar una aplicación al Dock en el sistema operativo elemental

Cómo agregar un archivo de intercambio en Ubuntu 20.04

¿Cómo encontrar el administrador de archivos predeterminado?