GNU/Linux >> Tutoriels Linux >  >> Linux

Comment compter les lignes d'un fichier sous UNIX/Linux

Question :J'ai un fichier sur mon système Linux contenant beaucoup de lignes. Comment compter le nombre total de lignes dans le fichier ?

Utiliser "wc -l"

Il existe plusieurs façons de compter les lignes dans un fichier. Mais l'un des moyens les plus simples et les plus largement utilisés consiste à utiliser "wc -l". L'utilitaire wc affiche le nombre de lignes, de mots et d'octets contenus dans chaque fichier d'entrée ou entrée standard (si aucun fichier n'est spécifié) sur la sortie standard.

La syntaxe est :

# wc -l [filename]

Considérez donc le fichier ci-dessous :

$ cat file01.txt
this is a sample
file
with
some sample
data

1. La commande "wc -l" lorsqu'elle est exécutée sur ce fichier, affiche le nombre de lignes avec le nom du fichier.

$ wc -l file01.txt
       5 file01.txt

2. Pour omettre le nom de fichier du résultat, utilisez :

$ wc -l < file01.txt
       5

3. Vous pouvez toujours fournir la sortie de la commande à la commande wc à l'aide de pipe. Par exemple :

$ cat file01.txt | wc -l
       5

Vous pouvez avoir n'importe quelle commande ici au lieu de cat. La sortie de n'importe quelle commande peut être redirigée vers la commande wc pour compter les lignes de la sortie.

Utiliser awk

Si vous devez utiliser awk pour trouver le nombre de lignes, utilisez la commande awk ci-dessous :

$ awk 'END{print NR}' [filename]

Exemple de sortie :

$ awk 'END{print NR}' file01.txt
5

Utiliser sed

Utilisez la syntaxe de commande sed ci-dessous pour trouver le nombre de lignes à l'aide de GNU sed :

$ sed -n '$=' [filename]

Exemple de sortie :

$ sed -n '$=' file01.txt
5

Utiliser grep

Notre bon vieil ami "grep" peut également être utilisé pour compter le nombre de lignes dans un fichier. Ces exemples sont juste pour vous faire savoir qu'il existe plusieurs façons de compter les lignes sans utiliser "wc -l". Mais si on me le demande, j'utiliserai toujours "wc -l" au lieu de ces options car c'est trop facile à retenir.

$ grep -c ".*" [filename]

Exemple de sortie :

$ grep -c ".*" file01.txt
5

Avec GNU grep, vous pouvez utiliser la syntaxe grep ci-dessous :

$ grep -Hc ".*" [filename]

Voici une autre version de la commande grep pour trouver le nombre de lignes.

$ grep -c ^ file01.txt
5

Exemple de sortie :

$ grep -Hc ".*" file01.txt
file01.txt:5

Quelques commandes supplémentaires

Outre les commandes ci-dessus, il est bon de connaître certaines commandes rarement utilisées pour trouver le nombre de lignes dans un fichier.

1. Utilisez la commande nl (filtre de numérotation des lignes) pour numéroter chaque ligne. La syntaxe de la commande est :

$ nl [filename]

Exemple de sortie :

$ nl file01.txt
     1	this is a sample
     2	file
     3	with
     4	some sample
     5	data

Manière pas si directe d'obtenir le nombre de lignes. Mais vous pouvez utiliser awk ou sed pour obtenir le décompte à partir de la dernière ligne. Par exemple :

$ nl file01.txt | tail -1 | awk '{print $1}'
5

2. Vous pouvez également utiliser vi et vim avec la commande ":set number" pour définir le nombre sur chaque ligne comme indiqué ci-dessous. Si le fichier est très volumineux, vous pouvez utiliser "Maj+G" pour aller à la dernière ligne et obtenir le nombre de lignes.

3. Utilisez la commande cat avec -n commutateur pour obtenir chaque ligne numérotée. Encore une fois, ici, vous pouvez obtenir le nombre de lignes à partir de la dernière ligne.

$ cat -n file01.txt
     1	this is a sample
     2	file
     3	with
     4	some sample
     5	data
$ cat -n file01.txt | tail -1 | awk '{print $1}'
5

4. Vous pouvez également utiliser perl one lines pour trouver le nombre de lignes :

$ perl -lne 'END { print $. }' file01.txt
5


Linux
  1. Comment ajouter plusieurs lignes à un fichier ?

  2. Compter les lignes dans un fichier ?

  3. Comment compter le nombre de lignes dans un fichier sous Linux (exemples de commandes wc et nl)

  4. unix - nombre de colonnes dans le fichier

  5. Comment supprimer setgid (linux/unix) ?

Comment créer un lien symbolique vers un fichier sous Linux

Comment inverser les lignes d'un fichier par caractère sous Linux

Comment trouver la ou les lignes les plus longues dans un fichier sous Linux

Comment extraire le fichier Tar.xz sur la ligne de commande Linux

Commande Linux wc - Nombre de mots, lignes, caractères dans un fichier

Tutoriel Unix Sed :ajouter, insérer, remplacer et compter les lignes de fichiers