Commande Linux nl
1. Présentation de la commande nl
nlC'est un outil en ligne de commande simple mais pratique du système Linux, dont le nom complet est "number lines" (numérotation des lignes). Sa fonction principale est de lire le contenu d'un fichier, d'ajouter un numéro de ligne à chaque ligne, puis de sortir le résultat vers la sortie standard.
1.1 Pourquoi avons-nous besoin de la commande nl ?
Dans le développement quotidien ou l'administration système, nous avons souvent besoin de :
- Consulter rapidement des lignes spécifiques de code ou des fichiers journaux
- Référencer facilement des numéros de ligne précis lors de discussions sur le contenu d'un fichier
- Numéroter le contenu d'un fichier pour un traitement ultérieur
- Générer des documents ou des rapports avec des numéros de ligne
Bien quecat -npeut également obtenir des fonctionnalités similaires, maisnloffre des options de contrôle des numéros de ligne plus riches, qui peuvent répondre à des besoins plus complexes.
2. Syntaxe et paramètres de base
2.1 Format de commande de base
Exemple
2.2 Description des options courantes
| Option | Description |
|---|---|
-b |
Spécifier la règle de calcul du numéro de ligne (suivie d’un style) |
-i |
Définir l’incrément du numéro de ligne (par défaut 1) |
-n |
Définir le format du numéro de ligne (aligné à gauche/aligné à droite/sans remplissage de zéros) |
-s |
Définir le séparateur entre le numéro de ligne et le contenu |
-v |
Définir le numéro de ligne de départ (par défaut 1) |
-w |
Définir la largeur du champ du numéro de ligne (nombre de caractères) |
-p |
Ne pas réinitialiser les numéros de ligne aux sauts de page |
2.3 Règles de calcul des numéros de ligne (option -b)
-bL'option peut être suivie des styles suivants :
| Style | Description |
|---|---|
a |
Numéroter toutes les lignes |
t |
Numéroter uniquement les lignes non vides (par défaut) |
n |
Ne pas numéroter |
p正则表达式 |
Numéroter uniquement les lignes correspondant à l'expression régulière |
3. Démonstrations d'exemples pratiques
3.1 Utilisation de base : ajouter des numéros de ligne à un fichier
Exemple
nl example.txt
# Ajouter des numéros de ligne à toutes les lignes (y compris les lignes vides)
nl -b a example.txt
3.2 Personnalisation du format des numéros de ligne
Exemple
nl -n rz -w 3 example.txt
# Utiliser "|" comme séparateur, numéros de ligne alignés à gauche
nl -s " | " -n ln example.txt
3.3 Règles de numérotation avancées
Exemple
nl -v 10 -i 2 example.txt
# Numéroter uniquement les lignes contenant "error"
nl -b perror example.log
3.4 Traitement de plusieurs fichiers
Exemple
nl file1.txt file2.txt
# Numéroter chaque fichier séparément
nl -p file1.txt file2.txt
4. Comparaison avec d'autres commandes
4.1 nl vs cat -n
| Fonctionnalité | nl | cat -n |
|---|---|---|
| Comportement par défaut | Numéroter uniquement les lignes non vides | Numéroter toutes les lignes |
| Contrôle du format | Riche (alignement, largeur, séparateur, etc.) | Limité |
| Règles de numérotation | Personnalisable (correspondance d'expressions régulières, etc.) | Fixe |
| Performance | Légèrement plus lent | Légèrement plus rapide |
4.2 nl vs grep -n
grep -nIl affiche également des numéros de ligne, mais son objectif principal est la recherche et le filtrage, et les numéros de ligne ne sont qu'une information supplémentaire.nlnl, en revanche, est un outil spécifiquement optimisé pour l'affichage des numéros de ligne.
5. Scénarios d'application pratiques
5.1 Revue de code
Exemple
nl -w 3 -n rz source.py > numbered_source.txt
5.2 Analyse de journaux
Exemple
nl -b pERROR app.log | less
5.3 Traitement de documents
Exemple
nl -s ". " -w 2 -n rz README.md
6. Remarques et conseils
- Gestion des lignes vides: Par défaut,
nlles lignes vides sont ignorées ; utilisez-b apour forcer la numérotation de toutes les lignes. - Gestion des fichiers volumineux: Pour les fichiers très volumineux, envisagez de combiner
lessouheadpour utiliser - Utilisation dans un pipeline: Il peut accepter l'entrée standard, comme
cat file | nl - Cohérence du format: Il est recommandé d'utiliser un ensemble fixe de paramètres dans les scripts afin de garantir un format de sortie cohérent.
- Considérations de performance: Pour de simples besoins de numérotation des lignes,
cat -npeut être plus rapide.
7. Résumé et exercices
7.1 Problèmes d'exercices
- Créer un fichier de test
test.txtContenant 5 lignes de texte et 2 lignes vides - Utiliser
nlpour afficher tous les numéros de ligne (y compris les lignes vides) - Définir les numéros de ligne pour commencer à 100 avec un incrément de 5
- Utiliser "::" comme séparateur et une largeur de numéro de ligne de 4
- Rediriger le résultat vers
numbered.txt
7.2 Réponses de référence
Exemple
echo -e "Première ligne\n\nDeuxième ligne\nTroisième ligne\n\nQuatrième ligne\nCinquième ligne" > test.txt
# Exécuter la commande nl
nl -b a -v 100 -i 5 -s "::" -w 4 test.txt > numbered.txt
# Afficher le résultat
cat numbered.txt
Référence des commandes Linux