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é !