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.
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 :
- Appuyez sur
Ctrl+X(pour quitter) - Appuyez sur
Y(pour confirmer que vous souhaitez enregistrer les modifications) - 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 initiauxrn: aligné à droite, sans zéros initiauxrz: 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 des lignes
Parfois, vous pouvez souhaiter numéroter uniquement certaines lignes d'un fichier, et non toutes. La commande nl offre 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 Enter.
Numéroter Uniquement les Lignes Non Vides
Par défaut, nl numérote toutes les lignes. Pour numéroter uniquement les lignes non vides, utilisez l'option -b t :
nl -b t mixed_content.txt > numbered_nonempty.txt
Affichez 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 Uniquement les Lignes Correspondant à un Motif (Pattern)
Vous pouvez également numéroter uniquement les lignes qui correspondent à un motif spécifique en utilisant l'option -b p'PATTERN'. Par exemple, pour numéroter uniquement les lignes contenant le mot "Section" :
nl -b p'Section' mixed_content.txt > numbered_sections.txt
Affichez 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
Affichez 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. 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
Ces options de numérotation sélective vous permettent d'appliquer des numéros de ligne uniquement là où ils sont nécessaires, ce qui rend 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
sedpour 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
nlavec 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.



