GNU/Linux >> Tutoriels Linux >  >> Linux

Comment ajouter des numéros de ligne aux fichiers texte sous Linux

Vous êtes-vous déjà demandé comment ajouter des numéros de ligne à la sortie standard des fichiers texte ? Ce petit guide explique comment vous pouvez ajouter des numéros de ligne à un fichier texte donné. Il existe plusieurs façons d'ajouter des numéros de ligne à un fichier. Ici, j'ai couvert 6 méthodes différentes pour le faire. Je continuerai à ajouter d'autres méthodes si j'en rencontre à l'avenir. Mieux vaut mettre ce guide en signet et revenir plus tard pour voir s'il y a des ajouts.

Méthode 1 - Utilisation de la commande 'nl'

La commande "nl" est dédiée à l'ajout de numéros de ligne dans un fichier. Il écrit le fichier donné sur la sortie standard, avec les numéros de ligne ajoutés. J'ai un fichier nommé file.txt avec le contenu suivant.

$ cat file.txt 
This is line1
This is line2
This is line3

This is line5


This is line8

Comme vous le voyez dans la sortie ci-dessus, le fichier comporte 8 lignes, avec trois lignes vides. Ajoutons les numéros de ligne.

Pour ce faire, exécutez :

 $ nl file.txt
 1 This is line1
 2 This is line2
 3 This is line3
 
 4 This is line5
 
 
 5 This is line8

La commande nl ne prendra pas en compte les lignes vides. Il n'ajoutera les numéros qu'aux lignes non vides. Si vous souhaitez numéroter toutes les lignes, y compris les lignes vides, utilisez -b drapeau comme ci-dessous.

 $ nl -b a file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

Vous pouvez également ajouter un symbole/des caractères spéciaux après les chiffres. Par exemple, pour ajouter un point (.) après les chiffres, exécutez :

 $ nl -s "." file.txt 
 1.This is line1
 2.This is line2
 3.This is line3
 
 4.This is line5
 
 
 5.This is line8

Vous voudrez peut-être aligner la largeur de la sortie. Pour ce faire, utilisez le drapeau -w comme ci-dessous.

$ nl -w2 file.txt

Méthode 2 - Utilisation de la commande 'cat'

La commande cat est utilisée pour afficher le contenu d'un fichier. Si vous souhaitez ajouter des nombres à la sortie d'un fichier, utilisez l'indicateur -n comme ci-dessous.

 $ cat -n file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

Alternativement, vous pouvez transmettre la sortie standard à un nouveau fichier comme ci-dessous.

$ cat -n file.txt > newfile.txt

Vous pouvez également vous débarrasser des lignes vides répétées.

 $ cat -s -n file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 This is line8

Méthode 3 - Utilisation de la commande 'awk'

Pour ajouter des numéros de ligne à la sortie d'un fichier à l'aide de la commande awk, exécutez :

$ awk 'BEGIN{i=1} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt 
1.This is line1
2.This is line2
3.This is line3
4.
5.This is line5
6.
7.
8.This is line8

Comme vous pouvez le remarquer, j'ai attribué le numéro de départ à 1 dans le paramètre BEGIN. Vous pouvez attribuer tout autre numéro de départ de votre choix, par exemple 5, comme indiqué ci-dessous.

$ awk 'BEGIN{i=5} /.*/{printf "%d.% s\n",i,$0; i++}' file.txt 
5.This is line1
6.This is line2
7.This is line3
8.
9.This is line5
10.
11.
12.This is line8

Utilisez la commande suivante si vous ne souhaitez pas tenir compte des lignes vides :

$ awk 'BEGIN{i=0} {if($0 !~ /^$/) {printf ("%d.%s \n",i,$0); i++} else { print $0} } ' file.txt

Si vous pensez que les commandes ci-dessus sont un peu difficiles à retenir, utilisez plutôt la commande suivante.

$ awk '{ print FNR " " $0 }' file.txt 
1 This is line1
2 This is line2
3 This is line3
4 
5 This is line5
6 
7 
8 This is line8

Si vous souhaitez augmenter l'espace entre les chiffres et le texte, exécutez :

$ awk '{ print FNR "\t " $0 }' file.txt

Méthode 4 - Utilisation de la commande 'sed'

Pour ajouter des numéros de ligne à une sortie standard d'un fichier à l'aide de la commande sed, exécutez :

$ sed '/./=' file.txt | sed '/./N; s/\n/ /'
1 This is line1
2 This is line2
3 This is line3

5 This is line5


8 This is line8

La commande sed a une fonctionnalité intéressante que j'aime le plus. Nous pouvons afficher un N ème ligne d'un fichier. Par exemple, pour afficher la 3ème ligne d'un fichier, exécutez :

$ sed -n 3p file.txt 
This is line3

Méthode 5 - Utilisation de la commande "moins"

Pour insérer le numéro de ligne dans la sortie standard d'un fichier à l'aide de la commande less, exécutez :

 $ less -N file.txt 
 1 This is line1
 2 This is line2
 3 This is line3
 4 
 5 This is line5
 6 
 7 
 8 This is line8

Méthode 6 - Utilisation de la commande 'grep'

La commande grep peut être utilisé pour rechercher une ligne qui contient une ligne spécifique. Si vous souhaitez ajouter les numéros de ligne à une ligne contenant une lettre spécifique, par exemple ligne , exécutez :

$ grep -n "line" file.txt 
1:This is line1
2:This is line2
3:This is line3
5:This is line5
8:This is line8

Veuillez noter que cette commande ajoutera uniquement les numéros aux lignes contenant la chaîne de recherche. Tout le reste dans le fichier donné sera omis.

Et c'est tout. Pour plus de détails sur les commandes ci-dessus, reportez-vous aux pages de manuel. Vous connaissez maintenant les différentes méthodes d'ajout de numéros de ligne aux fichiers texte. J'espère que vous trouvez ça utile. Plus de bonnes choses à venir. Restez à l'écoute !

Santé !


Linux
  1. Comment diviser et combiner des fichiers à partir de la ligne de commande sous Linux

  2. Comment joindre deux fichiers texte sous Linux

  3. Comment ajouter une ligne d'en-tête et de fin à un fichier sous Linux

  4. Comment distinguer le binaire des fichiers texte sous Linux

  5. Comment diviser un fichier texte en plusieurs fichiers *.txt ?

Comment comparer et fusionner des fichiers texte sous Linux

Comment renommer un ou plusieurs fichiers sous Linux

Comment diviser un gros fichier en parties à des numéros de ligne donnés

Comment ajouter du texte au début du fichier sous Linux

Comment trouver des fichiers contenant une chaîne de texte spécifique sous Linux

Comment compresser un fichier sous Linux