Numérotation de lignes en Linux

LinuxLinuxBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à utiliser la commande Linux nl pour ajouter des numéros de ligne aux fichiers texte. La numérotation des lignes est une technique utile lorsque vous travaillez avec des fichiers de configuration, du code ou tout document texte où vous avez besoin de référencer des lignes spécifiques. La commande nl offre diverses options pour personnaliser le format de numérotation, ce qui en fait un outil flexible pour différents besoins de documentation et de traitement.

À la fin de ce laboratoire (lab), vous comprendrez comment appliquer des techniques de numérotation de lignes de base et avancées aux fichiers texte, ce qui améliorera vos compétences en traitement de texte sous Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/VersionControlandTextEditorsGroup(["Version Control and Text Editors"]) linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/FileandDirectoryManagementGroup(["File and Directory Management"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux/BasicSystemCommandsGroup -.-> linux/nl("Line Numbering") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/FileandDirectoryManagementGroup -.-> linux/pwd("Directory Displaying") linux/TextProcessingGroup -.-> linux/sed("Stream Editing") linux/VersionControlandTextEditorsGroup -.-> linux/nano("Simple Text Editing") subgraph Lab Skills linux/nl -.-> lab-271345{{"Numérotation de lignes en Linux"}} linux/cat -.-> lab-271345{{"Numérotation de lignes en Linux"}} linux/pwd -.-> lab-271345{{"Numérotation de lignes en Linux"}} linux/sed -.-> lab-271345{{"Numérotation de lignes en Linux"}} linux/nano -.-> lab-271345{{"Numérotation de lignes en Linux"}} end

Création d'un fichier texte d'exemple

Dans cette étape, vous allez créer un fichier texte d'exemple que vous utiliserez tout au long de ce laboratoire (lab) pour pratiquer la numérotation des lignes.

Tout d'abord, vérifions votre répertoire de travail actuel. Par défaut, vous devriez être dans le répertoire /home/labex/project. Vous pouvez le confirmer avec la commande pwd :

pwd

Vous devriez voir la sortie suivante :

/home/labex/project

Maintenant, créons un simple fichier texte nommé sample.txt en utilisant l'éditeur de texte nano. Tapez la commande suivante pour ouvrir nano :

nano sample.txt

À l'intérieur de l'éditeur nano, tapez le contenu suivant :

Linux Commands
-------------
cat - display file contents
ls - list directory contents
cd - change directory
grep - search for patterns
chmod - change file permissions

Pour enregistrer le fichier et quitter nano :

  1. Appuyez sur Ctrl+X (pour quitter)
  2. Appuyez sur Y (pour confirmer que vous souhaitez enregistrer les modifications)
  3. Appuyez sur Entrée (pour confirmer le nom du fichier)

Maintenant, vérifiez que votre fichier a été créé en affichant son contenu :

cat sample.txt

Vous devriez voir exactement le texte que vous avez saisi affiché dans le terminal.

Numérotation de lignes de base avec nl

Maintenant que vous avez créé un fichier texte d'exemple, apprenons à ajouter des numéros de ligne en utilisant la commande nl. La commande nl sous Linux est utilisée pour numéroter les lignes d'un fichier, ce qui peut être utile à des fins de référence.

Utilisons la commande nl de base pour numéroter toutes les lignes de votre fichier d'exemple :

nl sample.txt

Vous devriez voir une sortie similaire à la suivante :

     1  Linux Commands
     2  -------------
     3  cat - display file contents
     4  ls - list directory contents
     5  cd - change directory
     6  grep - search for patterns
     7  chmod - change file permissions

Notez que la commande nl ajoute des numéros de ligne au début de chaque ligne. C'est le comportement par défaut de la commande nl.

Si vous souhaitez enregistrer cette sortie numérotée dans un nouveau fichier, vous pouvez utiliser la redirection de sortie avec le symbole > :

nl sample.txt > numbered_sample.txt

Cette commande crée un nouveau fichier nommé numbered_sample.txt contenant la version avec numéros de ligne de votre fichier original. Vérifions le contenu de ce nouveau fichier :

cat numbered_sample.txt

Vous devriez voir la même sortie numérotée que précédemment, maintenant enregistrée dans un fichier.

La commande nl de base est utile, mais parfois vous devrez peut-être personnaliser l'apparence de la numérotation des lignes. Dans l'étape suivante, nous explorerons quelques options de personnalisation.

Personnalisation du format de numérotation des lignes

La commande nl propose diverses options pour personnaliser l'apparence des numéros de ligne. Dans cette étape, vous allez apprendre à modifier le format de numérotation des lignes pour répondre à différents besoins.

Numéro de départ

Par défaut, la numérotation des lignes commence à 1. Vous pouvez modifier cela avec l'option -v (valeur de départ). Numérotons les lignes en commençant par 100 :

nl -v 100 sample.txt > custom_start.txt

Voyons le résultat :

cat custom_start.txt

Vous devriez voir une sortie avec des numéros de ligne commençant à 100 :

   100  Linux Commands
   101  -------------
   102  cat - display file contents
   103  ls - list directory contents
   104  cd - change directory
   105  grep - search for patterns
   106  chmod - change file permissions

Format des numéros

Vous pouvez également contrôler le format des numéros en utilisant l'option -n. Les spécificateurs de format incluent :

  • ln : aligné à gauche, sans zéros initiaux
  • rn : aligné à droite, sans zéros initiaux
  • rz : aligné à droite, avec zéros initiaux

Essayons des numéros alignés à droite avec des zéros initiaux :

nl -n rz sample.txt > zero_padded.txt

Voyons le résultat :

cat zero_padded.txt

Vous devriez voir une sortie comme celle-ci :

000001  Linux Commands
000002  -------------
000003  cat - display file contents
000004  ls - list directory contents
000005  cd - change directory
000006  grep - search for patterns
000007  chmod - change file permissions

Largeur du champ de numérotation

Vous pouvez contrôler la largeur du champ de numérotation avec l'option -w. Par défaut, il a une largeur de 6 caractères. Fixons-le à 3 :

nl -w 3 sample.txt > narrow_numbers.txt

Voyons le résultat :

cat narrow_numbers.txt

Vous devriez voir une sortie avec un champ de numérotation plus étroit :

  1  Linux Commands
  2  -------------
  3  cat - display file contents
  4  ls - list directory contents
  5  cd - change directory
  6  grep - search for patterns
  7  chmod - change file permissions

Essayons de combiner plusieurs options :

nl -v 10 -w 4 -n rz sample.txt > combined_format.txt

Cette commande :

  • Commence la numérotation à partir de 10 (-v 10)
  • Fixe la largeur à 4 caractères (-w 4)
  • Utilise le format aligné à droite avec des zéros initiaux (-n rz)

Voyons le résultat combiné :

cat combined_format.txt

Vous devriez voir une numérotation de lignes personnalisée :

0010  Linux Commands
0011  -------------
0012  cat - display file contents
0013  ls - list directory contents
0014  cd - change directory
0015  grep - search for patterns
0016  chmod - change file permissions

Ces options de personnalisation vous offrent une grande flexibilité quant à l'apparence des numéros de ligne dans vos documents.

Numérotation sélective de lignes

Parfois, vous pouvez souhaiter numéroter seulement certaines lignes d'un fichier, et non toutes. La commande nl propose des options pour numéroter sélectivement les lignes en fonction de critères spécifiques.

Créer un fichier avec des lignes vides

Tout d'abord, créons un nouveau fichier qui inclut des lignes vides :

nano mixed_content.txt

Dans l'éditeur nano, entrez le contenu suivant (y compris les lignes vides) :

Section 1: File Operations

cat - display file contents
less - view file content with pagination

Section 2: Navigation

cd - change directory
pwd - print working directory

Section 3: Permissions

chmod - change file permissions
chown - change file ownership

Enregistrez le fichier en appuyant sur Ctrl+X, puis Y, et Entrée.

Numéroter seulement les lignes non vides

Par défaut, nl numérote toutes les lignes. Pour numéroter seulement les lignes non vides, utilisez l'option -b t :

nl -b t mixed_content.txt > numbered_nonempty.txt

Voyez le résultat :

cat numbered_nonempty.txt

Vous devriez voir que seules les lignes non vides ont été numérotées :

     1  Section 1: File Operations

     2  cat - display file contents
     3  less - view file content with pagination

     4  Section 2: Navigation

     5  cd - change directory
     6  pwd - print working directory

     7  Section 3: Permissions

     8  chmod - change file permissions
     9  chown - change file ownership

Numéroter seulement les lignes correspondant à un motif

Vous pouvez également numéroter seulement les lignes qui correspondent à un motif spécifique en utilisant l'option -b p'PATTERN'. Par exemple, pour numéroter seulement les lignes contenant le mot "Section" :

nl -b p'Section' mixed_content.txt > numbered_sections.txt

Voyez le résultat :

cat numbered_sections.txt

Vous devriez voir que seules les lignes contenant "Section" sont numérotées :

     1  Section 1: File Operations

cat - display file contents
less - view file content with pagination

     2  Section 2: Navigation

cd - change directory
pwd - print working directory

     3  Section 3: Permissions

chmod - change file permissions
chown - change file ownership

Personnaliser le séparateur

Le séparateur par défaut entre le numéro de ligne et le texte est une tabulation. Vous pouvez le modifier en utilisant l'option -s :

nl -s '. ' mixed_content.txt > custom_separator.txt

Voyez le résultat :

cat custom_separator.txt

Vous devriez voir les numéros de ligne suivis d'un point et d'un espace :

     1. Section 1: File Operations
     2.
     3. cat - display file contents
     4. less - view file content with pagination
     5.
     6. Section 2: Navigation
     7.
     8. cd - change directory
     9. pwd - print working directory
    10.
    11. Section 3: Permissions
    12.
    13. chmod - change file permissions
    14. chown - change file ownership

Ces options de numérotation sélective vous permettent d'appliquer des numéros de ligne seulement là où ils sont nécessaires, rendant vos documents plus organisés et plus faciles à référencer.

Applications pratiques et utilisation avancée

Dans cette étape finale, nous allons explorer quelques applications pratiques et utilisations avancées de la commande nl dans des scénarios du monde réel.

Numérotation de plusieurs fichiers

La commande nl peut traiter plusieurs fichiers à la fois. Créons un deuxième fichier :

nano commands2.txt

Ajoutez le contenu suivant :

Additional Linux Commands
------------------------
find - search for files
tar - archive files
ssh - secure shell connection
df - disk free space
top - display system processes

Enregistrez et quittez nano. Maintenant, numérotons les deux fichiers ensemble :

nl sample.txt commands2.txt > combined_numbered.txt

Voyons le résultat combiné :

cat combined_numbered.txt

Vous devriez voir les deux fichiers numérotés séquentiellement :

     1  Linux Commands
     2  -------------
     3  cat - display file contents
     4  ls - list directory contents
     5  cd - change directory
     6  grep - search for patterns
     7  chmod - change file permissions
     1  Additional Linux Commands
     2  ------------------------
     3  find - search for files
     4  tar - archive files
     5  ssh - secure shell connection
     6  df - disk free space
     7  top - display system processes

Notez que les numéros de ligne recommencent pour le deuxième fichier. Si vous souhaitez une numérotation continue entre les fichiers, vous pouvez utiliser l'option -i :

nl -i 1 -n ln sample.txt commands2.txt > continuously_numbered.txt

Voyons le résultat :

cat continuously_numbered.txt

Vous devriez voir une numérotation continue sur les deux fichiers :

     1  Linux Commands
     2  -------------
     3  cat - display file contents
     4  ls - list directory contents
     5  cd - change directory
     6  grep - search for patterns
     7  chmod - change file permissions
     8  Additional Linux Commands
     9  ------------------------
    10  find - search for files
    11  tar - archive files
    12  ssh - secure shell connection
    13  df - disk free space
    14  top - display system processes

Combinaison avec d'autres commandes

La commande nl peut être combinée avec d'autres commandes Linux en utilisant des pipes. Par exemple, vous pouvez numéroter les lignes de la sortie d'une commande :

ls -l /etc | nl > numbered_ls_output.txt

Voyons le résultat :

cat numbered_ls_output.txt

Vous devriez voir la sortie de ls -l /etc avec des numéros de ligne ajoutés.

Cas d'utilisation dans le monde réel : Ajout de numéros de ligne à un fichier de journal

La numérotation de lignes est particulièrement utile lors de l'analyse de fichiers de journal. Voyons comment nous pouvons utiliser nl pour ajouter des numéros de ligne aux journaux :

## First, create a sample log file
cat > sample_log.txt << EOF
[2023-07-01 10:15:22] INFO: System startup
[2023-07-01 10:15:24] INFO: Loading configuration
[2023-07-01 10:15:25] WARNING: Config file is outdated
[2023-07-01 10:15:28] ERROR: Failed to connect to database
[2023-07-01 10:15:30] INFO: Retrying database connection
[2023-07-01 10:15:33] INFO: Database connection established
[2023-07-01 10:15:35] INFO: System ready
EOF

Maintenant, ajoutons des numéros de ligne avec un format personnalisé qui inclut le numéro de ligne entre crochets :

nl -s ' [Line: ' -n ln -w 2 -b a sample_log.txt | sed 's/$/]/' > numbered_log.txt

Cette commande :

  • Utilise un séparateur personnalisé -s ' [Line: '
  • Utilise des numéros alignés à gauche sans zéros initiaux -n ln
  • Fixe la largeur à 2 caractères -w 2
  • Numérote toutes les lignes -b a
  • Utilise sed pour ajouter une crochet fermante à la fin de chaque ligne

Voyons le résultat :

cat numbered_log.txt

Vous devriez voir les entrées de journal avec des numéros de ligne entre crochets :

 1 [Line: [2023-07-01 10:15:22] INFO: System startup]
 2 [Line: [2023-07-01 10:15:24] INFO: Loading configuration]
 3 [Line: [2023-07-01 10:15:25] WARNING: Config file is outdated]
 4 [Line: [2023-07-01 10:15:28] ERROR: Failed to connect to database]
 5 [Line: [2023-07-01 10:15:30] INFO: Retrying database connection]
 6 [Line: [2023-07-01 10:15:33] INFO: Database connection established]
 7 [Line: [2023-07-01 10:15:35] INFO: System ready]

Ce format peut être très utile lors de la référence à des entrées de journal spécifiques dans la documentation ou les discussions.

Maintenant, vous avez une bonne compréhension de l'utilisation de la commande nl pour la numérotation de lignes de base et avancée sous Linux. Cette compétence sera précieuse lors de la manipulation de fichiers texte, de journaux, de code et de documentation.

Résumé

Dans ce laboratoire, vous avez appris à utiliser la commande Linux nl pour ajouter des numéros de ligne à des fichiers texte. Voici un résumé des concepts clés abordés :

  • Numérotation de lignes de base en utilisant la simple commande nl
  • Personnalisation du format de numérotation de lignes avec des options telles que -v (valeur de départ), -n (format de numérotation) et -w (largeur)
  • Numérotation sélective de lignes avec des options telles que -b t (lignes non vides) et -b p'PATTERN' (correspondance de motif)
  • Personnalisation du séparateur entre les numéros de ligne et le texte avec l'option -s
  • Traitement de plusieurs fichiers et création d'une numérotation continue entre les fichiers
  • Combinaison de nl avec d'autres commandes en utilisant des pipes
  • Applications pratiques telles que la numérotation de fichiers de journal pour une référence plus facile

La commande nl est un outil précieux pour le traitement de texte sous Linux, en particulier lorsque vous avez besoin de référencer des lignes spécifiques dans la documentation, les revues de code ou lors de l'analyse de fichiers de journal. En maîtrisant les diverses options de nl, vous disposez désormais d'une technique puissante pour améliorer la lisibilité et l'utilisabilité des données textuelles.

Au fur et à mesure de votre progression dans le monde Linux, rappelez-vous que les commandes de traitement de texte comme nl, combinées avec d'autres outils, constituent la base d'une manipulation efficace des fichiers et d'un traitement des données dans l'environnement Linux.