GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:compruebe si hay una línea vacía al final de un archivo

Encontré la solución aquí.

#!/bin/bash
x=`tail -n 1 "$1"`
if [ "$x" == "" ]; then
    echo "Newline at end of file!"
else
    echo "No Newline at end of file!"
fi

IMPORTANTE:¡Asegúrese de tener los derechos para ejecutar y leer el script!chmod 555 script

USO:

./script text_with_newline        OUTPUT: Newline at end of file!
./script text_without_newline     OUTPUT: No Newline at end of file!

Solo escribe:

cat -e nameofyourfile

Si hay una nueva línea, terminará con $ símbolo. Si no, terminará con un % símbolo.


La respuesta de Olivier Pirson es más clara que la que publiqué aquí originalmente (también maneja correctamente los archivos vacíos). Edité mi solución para que coincida con la suya.

En bash:

newline_at_eof()
{
    if [[ -s "$1" && -z "$(tail -c 1 "$1")" ]]
    then
        echo "Newline at end of file!"
    else
        echo "No newline at end of file!"
    fi
}

Como un script de shell al que puede llamar (péguelo en un archivo, chmod +x <filename> para hacerlo ejecutable):

#!/bin/bash
if [[ -s "$1" && -z "$(tail -c 1 "$1")" ]]
then
    echo "Newline at end of file!"
else
    echo "No newline at end of file!"
fi

El \Z meta-carácter significa el final absoluto de la cadena.

if (preg_match('#\n\Z#', file_get_contents('foo.txt'))) {
    echo 'New line found at the end';
}

Así que aquí estás viendo una nueva línea al final absoluto de la cadena. file_get_contents no añadirá nada al final. PERO cargará todo el archivo en la memoria; si su archivo no es demasiado grande, está bien, de lo contrario tendrá que traer una nueva solución a su problema.


Linux
  1. Copie y pegue en la línea de comandos de Linux con xclip

  2. Uso avanzado del visor de archivos de menos texto en Linux

  3. ¿Leer un archivo orientado a líneas que puede no terminar con una nueva línea?

  4. Linux:¿por qué no hay un sistema de archivos Rootfs presente en el sistema?

  5. Cómo vaciar un archivo de registro en Linux

Cómo revisar la ortografía en la línea de comandos de Linux con Aspell

Introducción al sistema de archivos de Linux

Domina la línea de comandos de Linux

Ver el contenido de un archivo en la línea de comandos de Linux

Comprobar la zona horaria en Linux

5 comandos para ver el contenido de un archivo en la línea de comandos de Linux