Un pense-bête

Trucs de geek : Compter les lignes dans un fichier

Lors de l'éxécution d'un script on peut rediriger les commandes vers un fichier. Il faut ensuite vérifier si on a un résultat sous la forme de lignes dans le fichier en question.

Soit le fichier test.txt suivant :

France
Italie
Allemagne
Grande Bretagne
Belgique

On peut compter le nombre de lignes avec la commande nl qui affiche le contenu du fichier en numérotant les lignes. Ainsi

$ nl test.txt

donne

     1  France
     2  Italie
     3  Allemagne
     4  Grande Bretagne
     5  Belgique

On a donc 5 lignes. Si votre fichier comporte des lignes vides elles ne sont pas comptabilisées.

Une des options de nlk permet de numéroter les lignes de 2 en 2 ou de 5 en 5 :

nl -i2 test.txt

donne

     1  France
     3  Italie
     5  Allemagne
     7  Grande Bretagne
     9  Belgique

On peut personnaliser un peu la présentation avec l'option "-s" qui ajoute une chaine de caractères entre le numéro et le contenu de la ligne. Ainsi

$ nl -s. test.txt

donne

    1.France
     2.Italie
     3.Allemagne
     4.Grande Bretagne
     5.Belgique

Pour ne compter que les lignes dont le contenu commence par un caractère ou une séquence de caractéres il faut ajouter l'option "-bp". Dans notre cas

$ nl -bI test.txt

donne

       France
     1  Italie
       Allemagne
       Grande Bretagne
       Belgique

et

$ nl -bpIw test.txt

donne

       France
       Italie
       Allemagne
       Grande Bretagne
       Belgique

Autre technique plus couramment utilisée pour ce type de décompte : wc.

$ wc -l test.txt

donne

 5 test.txt

pour le nombre de mots :

$ wc -w test.txt

donne

6 test.txt

Pour connaître la longueur de la ligne la plus grande

$ wc -L test.txt

donne

15 test.txt

Enfin pour connaître le nom de bytes :

$ wc -c test.txt

donne

49 test.txt

Fait le 02/05/2013

Tags: geek, nl, wc