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 1.1
modifié par john
sur 2025/05/24 23:47
Commentaire de modification : Imported from XAR

Résumé

Détails

Propriétés de la Page
Titre
... ... @@ -1,1 +1,1 @@
1 -grep
1 +Grep
Contenu
... ... @@ -1,134 +1,98 @@
1 += grep et ses options =
2 +
1 1  {{toc/}}
2 2  
3 3  == Présentation ==
6 +La commande `grep` (Global Regular Expression Print) permet de **rechercher des chaînes de caractères dans des fichiers** ou en sortie de commande.
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.
6 -
7 7  C’est l’outil idéal pour filtrer, explorer, et déboguer du texte dans le terminal.
8 8  
9 -----
10 +---
10 10  
11 11  == Syntaxe de base ==
12 -
13 13  {{code language="bash"}}
14 14  grep "motif" fichier.txt
15 15  {{/code}}
16 16  
17 -----
17 +---
18 18  
19 19  == Exemples simples ==
20 -
21 -Rechercher une ligne contenant ##ssh## :
22 -
20 +Rechercher une ligne contenant `ssh` :
23 23  {{code language="bash"}}
24 24  grep ssh /var/log/auth.log
25 25  {{/code}}
26 26  
27 -Afficher les lignes contenant ##root## dans un fichier :
28 -
25 +Afficher les lignes contenant "root" dans un fichier :
29 29  {{code language="bash"}}
30 30  grep root /etc/passwd
31 31  {{/code}}
32 32  
33 -----
30 +---
34 34  
35 35  == Options courantes ==
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`) |
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
43 +---
51 51  
52 -----
53 -
54 54  == Recherche récursive ==
55 -
56 56  {{code language="bash"}}
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##.
50 +Cela affiche les fichiers, numéros de lignes, et lignes contenant le motif dans tout `/etc`.
61 61  
62 -----
52 +---
63 63  
64 64  == Recherche insensible à la casse ==
65 -
66 66  {{code language="bash"}}
67 67  grep -i "linux" fichier.txt
68 68  {{/code}}
69 69  
70 -----
59 +---
71 71  
72 72  == Exclusion de motif ==
73 -
74 74  {{code language="bash"}}
75 75  grep -v "erreur" journal.log
76 76  {{/code}}
77 77  
78 -Affiche toutes les lignes **ne contenant pas** le mot « erreur ».
66 +Affiche toutes les lignes **ne contenant pas** le mot "erreur".
79 79  
80 -----
68 +---
81 81  
82 -== grep avec des tubes ==
83 -
70 +== Grep avec pipes ==
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 :
75 +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}}
77 +---
95 95  
96 -----
97 -
98 -== grep et les expressions régulières ==
99 -
100 -Les caractères ##+##, ##?##, ##|##, ##(## et ##)## ne sont reconnus qu'avec ##-E## :
101 -
79 +== grep + regex ==
102 102  {{code language="bash"}}
103 -grep -E "[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}" fichier.txt
81 +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).
84 +Extrait les lignes contenant des adresses email (simplifié).
107 107  
108 -Quelques motifs utiles :
86 +---
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##)
115 -
116 -----
117 -
118 -== Astuce grep et find ==
119 -
120 -Rechercher un motif dans tous les fichiers ##.log## :
121 -
88 +== Astuce grep + find ==
89 +Pour rechercher un motif dans tous les fichiers `.log` :
122 122  {{code language="bash"}}
123 -grep -rn --include="*.log" "erreur" .
124 -# ou
125 -find . -name "*.log" -exec grep -Hn "erreur" {} +
91 +find . -name "*.log" -exec grep -H "erreur" {} \;
126 126  {{/code}}
127 127  
128 -La première forme est plus rapide ; la seconde reste utile quand il faut d'autres critères de ##find##.
94 +---
129 129  
130 -----
131 -
132 132  == Liens internes ==
97 +* [[Retour à la section Tutos Linux>>Wiki Batcave John.TutosLinux]]
133 133  
134 -* [[Retour à la section Tutos Linux>>doc:Wiki Batcave John.TutosLinux.WebHome]]