Commande Linux nl

Linux 命令大全Référence des commandes Linux


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

nl [Option]... [Fichier]...

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

# Ajouter des numéros de ligne à toutes les lignes non vides de example.txt
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

# Définir la largeur des numéros de ligne à 3, en utilisant le format aligné à droite
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

# Commencer la numérotation à partir de 10 avec un incrément de 2
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

# Numéroter plusieurs fichiers consécutivement
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

# Générer un fichier de code avec des numéros de ligne pour faciliter la discussion
nl -w 3 -n rz source.py > numbered_source.txt

5.2 Analyse de journaux

Exemple

# Numéroter uniquement les lignes de journal contenant "ERROR"
nl -b pERROR app.log | less

5.3 Traitement de documents

Exemple

# Générer un document Markdown avec des numéros de ligne
nl -s ". " -w 2 -n rz README.md

6. Remarques et conseils

  1. Gestion des lignes vides: Par défaut,nlles lignes vides sont ignorées ; utilisez-b apour forcer la numérotation de toutes les lignes.
  2. Gestion des fichiers volumineux: Pour les fichiers très volumineux, envisagez de combinerlessouheadpour utiliser
  3. Utilisation dans un pipeline: Il peut accepter l'entrée standard, commecat file | nl
  4. 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.
  5. 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

  1. Créer un fichier de testtest.txtContenant 5 lignes de texte et 2 lignes vides
  2. Utilisernlpour afficher tous les numéros de ligne (y compris les lignes vides)
  3. Définir les numéros de ligne pour commencer à 100 avec un incrément de 5
  4. Utiliser "::" comme séparateur et une largeur de numéro de ligne de 4
  5. Rediriger le résultat versnumbered.txt

7.2 Réponses de référence

Exemple

# Créer un fichier de test
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

Linux 命令大全Référence des commandes Linux

Autres extensions