GNU/Linux >> Tutoriels Linux >  >> Linux

wc -l ne compte PAS le dernier du fichier s'il n'a pas de caractère de fin de ligne

Il est préférable d'avoir toutes les lignes se terminant par EOL \n dans les fichiers Unix. Vous pouvez faire :

{ cat file; echo ''; } | wc -l

Ou ce awk :

awk 'END{print NR}' file

grep -c renvoie le nombre de lignes correspondantes. Utilisez simplement une chaîne vide "" comme expression correspondante :

$ echo -n $'a\nb\nc' > 2or3.txt
$ cat 2or3.txt | wc -l
2
$ grep -c "" 2or3.txt
3

Linux
  1. Pourquoi l'expression régulière fonctionne-t-elle dans X mais pas dans Y ?

  2. Lire un fichier orienté ligne qui ne se termine peut-être pas par une nouvelle ligne ?

  3. Pourquoi le fichier de traduction Bash ne contient-il pas tous les textes d'erreur ?

  4. Bash :ajouter une chaîne à la fin du fichier sans saut de ligne

  5. La commande Linux sed ne modifie pas le fichier cible

Comment réparer l'erreur "Le référentiel n'a pas de fichier de version" dans Ubuntu

Comment puis-je supprimer une nouvelle ligne si c'est le dernier caractère d'un fichier ?

Imprimer la dernière ligne d'un fichier, à partir de la CLI

Ajouter une ligne à un fichier uniquement s'il n'existe pas déjà

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

Que signifie un + à la fin des autorisations de ls -l ?