Modifications pour le document grep

Modifié par john le 2026/09/20 20:13

Depuis la version 2.1
modifié par john
sur 2026/09/20 20:04
Commentaire de modification : Il n'y a aucun commentaire pour cette version
À la version 3.1
modifié par john
sur 2026/09/20 20:13
Commentaire de modification : Il n'y a aucun commentaire pour cette version

Résumé

Détails

Propriétés de la Page
Contenu
... ... @@ -1,14 +3,12 @@
1 -= grep et ses options =
2 -
3 3  {{toc/}}
4 4  
5 5  == Présentation ==
6 6  
7 -La commande `grep` (Global Regular Expression Print) permet de **rechercher des chaînes de caractères dans des fichiers** ou en sortie de commande.
5 +La commande ##grep## (Global Regular Expression Print) permet de **rechercher des chaînes de caractères dans des fichiers** ou en sortie de commande.
8 8  
9 9  C’est l’outil idéal pour filtrer, explorer, et déboguer du texte dans le terminal.
10 10  
11 ------
9 +----
12 12  
13 13  == Syntaxe de base ==
14 14  
... ... @@ -16,31 +16,42 @@
16 16  grep "motif" fichier.txt
17 17  {{/code}}
18 18  
19 ------
17 +----
20 20  
21 21  == Exemples simples ==
22 22  
23 -Rechercher une ligne contenant `ssh` :
24 -{{code language="bash"}}grep ssh /var/log/auth.log{{/code}}
21 +Rechercher une ligne contenant ##ssh## :
25 25  
26 -Afficher les lignes contenant "root" dans un fichier :
27 -{{code language="bash"}}grep root /etc/passwd{{/code}}
23 +{{code language="bash"}}
24 +grep ssh /var/log/auth.log
25 +{{/code}}
28 28  
29 ------
27 +Afficher les lignes contenant ##root## dans un fichier :
30 30  
29 +{{code language="bash"}}
30 +grep root /etc/passwd
31 +{{/code}}
32 +
33 +----
34 +
31 31  == Options courantes ==
32 32  
33 -|= Option |= Description |
34 -| `-i` | Ignore la casse (maj/min) |
35 -| `-n` | Affiche le **numéro de ligne** |
36 -| `-r` ou `-R` | Recherche **récursive** dans les dossiers |
37 -| `-l` | Affiche seulement les **noms de fichiers** contenant le motif |
38 -| `-v` | Affiche tout **sauf** les lignes contenant le motif |
39 -| `--color=auto` --| Colore les correspondances dans la sortie |
40 -| `-e` | Permet de spécifier plusieurs motifs |
41 -| `-E` | Active les **expressions régulières étendues** (`egrep`) |
37 +|=Option|=Description
38 +|##-i##|Ignore la casse
39 +|##-n##|Affiche le **numéro de ligne**
40 +|##-r## ou ##-R##|Recherche **récursive** dans les dossiers
41 +|##-l##|Affiche seulement les **noms de fichiers** contenant le motif
42 +|##-L##|Affiche les fichiers **ne contenant pas** le motif
43 +|##-v##|Affiche tout **sauf** les lignes contenant le motif
44 +|##-c##|Compte les lignes correspondantes
45 +|##-w##|Cherche le **mot entier**
46 +|##-A n## / ##-B n## / ##-C n##|Affiche n lignes **après**, **avant**, ou **autour**
47 +|##--color=auto##|Colore les correspondances
48 +|##-e##|Permet de spécifier plusieurs motifs
49 +|##-E##|Active les **expressions régulières étendues**
50 +|##-F##|Traite le motif comme du texte brut, sans expression régulière
42 42  
43 ------
52 +----
44 44  
45 45  == Recherche récursive ==
46 46  
... ... @@ -48,9 +48,9 @@
48 48  grep -rn "motif" /etc
49 49  {{/code}}
50 50  
51 -Cela affiche les fichiers, numéros de lignes, et lignes contenant le motif dans tout `/etc`.
60 +Affiche les fichiers, numéros de lignes, et lignes contenant le motif dans tout ##/etc##.
52 52  
53 ------
62 +----
54 54  
55 55  == Recherche insensible à la casse ==
56 56  
... ... @@ -58,7 +58,7 @@
58 58  grep -i "linux" fichier.txt
59 59  {{/code}}
60 60  
61 ------
70 +----
62 62  
63 63  == Exclusion de motif ==
64 64  
... ... @@ -66,37 +66,60 @@
66 66  grep -v "erreur" journal.log
67 67  {{/code}}
68 68  
69 -Affiche toutes les lignes **ne contenant pas** le mot "erreur".
78 +Affiche toutes les lignes **ne contenant pas** le mot « erreur ».
70 70  
71 ------
80 +----
72 72  
73 -== Grep avec pipes ==
82 +== grep avec des tubes ==
74 74  
75 75  {{code language="bash"}}
76 76  ps aux | grep nginx
77 77  {{/code}}
78 78  
79 -Permet de filtrer une sortie de commande.
88 +Permet de filtrer une sortie de commande. Le ##grep## lui-même apparaît dans le résultat ; pour l'éviter :
80 80  
81 ------
90 +{{code language="bash"}}
91 +ps aux | grep -v grep | grep nginx
92 +# ou
93 +pgrep -a nginx
94 +{{/code}}
82 82  
83 -== grep + regex ==
96 +----
84 84  
98 +== grep et les expressions régulières ==
99 +
100 +Les caractères ##+##, ##?##, ##|##, ##(## et ##)## ne sont reconnus qu'avec ##-E## :
101 +
85 85  {{code language="bash"}}
86 -grep "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+" fichier.txt
103 +grep -E "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}" fichier.txt
87 87  {{/code}}
88 88  
89 -Extrait les lignes contenant des adresses email (simplifié).
106 +Extrait les lignes contenant une adresse de courriel (version simplifiée).
90 90  
91 ------
108 +Quelques motifs utiles :
92 92  
93 -== Astuce grep + find ==
110 +|=Motif|=Sens
111 +|##^mot##|Ligne commençant par « mot »
112 +|##mot$##|Ligne finissant par « mot »
113 +|##^$##|Ligne vide
114 +|##[0-9]{3}##|Trois chiffres (avec ##-E##)
94 94  
95 -Pour rechercher un motif dans tous les fichiers `.log` :
96 -{{code language="bash"}}find . -name "*.log" -exec grep -H "erreur" {} \;{{/code}}
116 +----
97 97  
98 ------
118 +== Astuce grep et find ==
99 99  
120 +Rechercher un motif dans tous les fichiers ##.log## :
121 +
122 +{{code language="bash"}}
123 +grep -rn --include="*.log" "erreur" .
124 +# ou
125 +find . -name "*.log" -exec grep -Hn "erreur" {} +
126 +{{/code}}
127 +
128 +La première forme est plus rapide ; la seconde reste utile quand il faut d'autres critères de ##find##.
129 +
130 +----
131 +
100 100  == Liens internes ==
101 101  
102 -* [[Retour à la section Tutos Linux>>Wiki Batcave John.TutosLinux]]
134 +* [[Retour à la section Tutos Linux>>doc:Wiki Batcave John.TutosLinux.WebHome]]