0 Votes

Modifications pour le document grep

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

Depuis 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
À 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

Résumé

Détails

Propriétés de la Page
Contenu
... ... @@ -1,12 +1,14 @@
1 += grep et ses options =
2 +
1 1  {{toc/}}
2 2  
3 3  == Présentation ==
4 4  
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.
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.
6 6  
7 7  C’est l’outil idéal pour filtrer, explorer, et déboguer du texte dans le terminal.
8 8  
9 -----
11 +-----
10 10  
11 11  == Syntaxe de base ==
12 12  
... ... @@ -14,42 +14,31 @@
14 14  grep "motif" fichier.txt
15 15  {{/code}}
16 16  
17 -----
19 +-----
18 18  
19 19  == Exemples simples ==
20 20  
21 -Rechercher une ligne contenant ##ssh## :
23 +Rechercher une ligne contenant `ssh` :
24 +{{code language="bash"}}grep ssh /var/log/auth.log{{/code}}
22 22  
23 -{{code language="bash"}}
24 -grep ssh /var/log/auth.log
25 -{{/code}}
26 +Afficher les lignes contenant "root" dans un fichier :
27 +{{code language="bash"}}grep root /etc/passwd{{/code}}
26 26  
27 -Afficher les lignes contenant ##root## dans un fichier :
29 +-----
28 28  
29 -{{code language="bash"}}
30 -grep root /etc/passwd
31 -{{/code}}
32 -
33 -----
34 -
35 35  == Options courantes ==
36 36  
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
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`) |
51 51  
52 -----
43 +-----
53 53  
54 54  == Recherche récursive ==
55 55  
... ... @@ -57,9 +57,9 @@
57 57  grep -rn "motif" /etc
58 58  {{/code}}
59 59  
60 -Affiche les fichiers, numéros de lignes, et lignes contenant le motif dans tout ##/etc##.
51 +Cela affiche les fichiers, numéros de lignes, et lignes contenant le motif dans tout `/etc`.
61 61  
62 -----
53 +-----
63 63  
64 64  == Recherche insensible à la casse ==
65 65  
... ... @@ -67,7 +67,7 @@
67 67  grep -i "linux" fichier.txt
68 68  {{/code}}
69 69  
70 -----
61 +-----
71 71  
72 72  == Exclusion de motif ==
73 73  
... ... @@ -75,60 +75,37 @@
75 75  grep -v "erreur" journal.log
76 76  {{/code}}
77 77  
78 -Affiche toutes les lignes **ne contenant pas** le mot « erreur ».
69 +Affiche toutes les lignes **ne contenant pas** le mot "erreur".
79 79  
80 -----
71 +-----
81 81  
82 -== grep avec des tubes ==
73 +== Grep avec pipes ==
83 83  
84 84  {{code language="bash"}}
85 85  ps aux | grep nginx
86 86  {{/code}}
87 87  
88 -Permet de filtrer une sortie de commande. Le ##grep## lui-même apparaît dans le résultat ; pour l'éviter :
79 +Permet de filtrer une sortie de commande.
89 89  
90 -{{code language="bash"}}
91 -ps aux | grep -v grep | grep nginx
92 -# ou
93 -pgrep -a nginx
94 -{{/code}}
81 +-----
95 95  
96 -----
83 +== grep + regex ==
97 97  
98 -== grep et les expressions régulières ==
99 -
100 -Les caractères ##+##, ##?##, ##|##, ##(## et ##)## ne sont reconnus qu'avec ##-E## :
101 -
102 102  {{code language="bash"}}
103 -grep -E "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}" fichier.txt
86 +grep "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+" fichier.txt
104 104  {{/code}}
105 105  
106 -Extrait les lignes contenant une adresse de courriel (version simplifiée).
89 +Extrait les lignes contenant des adresses email (simplifié).
107 107  
108 -Quelques motifs utiles :
91 +-----
109 109  
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##)
93 +== Astuce grep + find ==
115 115  
116 -----
95 +Pour rechercher un motif dans tous les fichiers `.log` :
96 +{{code language="bash"}}find . -name "*.log" -exec grep -H "erreur" {} \;{{/code}}
117 117  
118 -== Astuce grep et find ==
98 +-----
119 119  
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 -
132 132  == Liens internes ==
133 133  
134 -* [[Retour à la section Tutos Linux>>doc:Wiki Batcave John.TutosLinux.WebHome]]
102 +* [[Retour à la section Tutos Linux>>Wiki Batcave John.TutosLinux]]