GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - vérifier s'il y a une ligne vide à la fin d'un fichier

J'ai trouvé la solution ici.

#!/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

IMPORTANT :Assurez-vous d'avoir le droit d'exécuter et de lire le script !chmod 555 script

UTILISATION :

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

Tapez simplement :

cat -e nameofyourfile

S'il y a une nouvelle ligne, elle se terminera par $ Si ce n'est pas le cas, il se terminera par un % symbole.


La réponse d'Olivier Pirson est plus soignée que celle que j'ai postée ici à l'origine (elle gère également correctement les fichiers vides). J'ai modifié ma solution pour qu'elle corresponde à la sienne.

En bas :

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
}

En tant que script shell que vous pouvez appeler (le coller dans un fichier, chmod +x <filename> pour le rendre exécutable):

#!/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

Le \Z méta-caractère signifie la fin absolue de la chaîne.

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

Donc, ici, vous regardez une nouvelle ligne à la fin absolue de la chaîne. file_get_contents n'ajoutera rien à la fin. MAIS il chargera le fichier entier en mémoire ; si votre fichier n'est pas trop volumineux, ça va, sinon vous devrez apporter une nouvelle solution à votre problème.


Linux
  1. Vérifiez l'état du fichier sous Linux avec la commande stat

  2. Copiez et collez sur la ligne de commande Linux avec xclip

  3. Utilisation avancée du visualiseur de fichiers avec moins de texte sous Linux

  4. Comment extraire le fichier tar.gz sous Linux à l'aide de la ligne de commande

  5. Aller au début ou à la fin du fichier dans Vim [Quick Tip]

Comment vérifier l'orthographe sur la ligne de commande Linux avec Aspell

Introduction au système de fichiers Linux

Maîtrisez la ligne de commande Linux

Afficher le contenu d'un fichier dans la ligne de commande Linux

Vérifier le fuseau horaire sous Linux

5 commandes pour afficher le contenu d'un fichier en ligne de commande Linux