0 Votes

Modifications pour le document Grep

Modifié par john le 2025/05/25 11:16

Depuis la version 1.2
modifié par john
sur 2025/05/24 23:09
Commentaire de modification : Update document after refactoring.
À la version 1.5
modifié par john
sur 2025/05/24 23:13
Commentaire de modification : Renamed back-links.

Résumé

Détails

Propriétés de la Page
Parent
... ... @@ -1,1 +1,1 @@
1 -TutosLinux.WebHome
1 +Wiki Batcave John.TutosLinux.WebHome
Contenu
... ... @@ -3,46 +3,47 @@
3 3  {{toc/}}
4 4  
5 5  == Présentation ==
6 +
6 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.
7 7  
8 8  C’est l’outil idéal pour filtrer, explorer, et déboguer du texte dans le terminal.
9 9  
10 ----
11 +----
11 11  
12 12  == Syntaxe de base ==
14 +
13 13  {{code language="bash"}}
14 14  grep "motif" fichier.txt
15 15  {{/code}}
16 16  
17 ----
19 +----
18 18  
19 19  == Exemples simples ==
22 +
20 20  Rechercher une ligne contenant `ssh` :
21 -{{code language="bash"}}
22 -grep ssh /var/log/auth.log
23 -{{/code}}
24 +{{code language="bash"}}grep ssh /var/log/auth.log{{/code}}
24 24  
25 25  Afficher les lignes contenant "root" dans un fichier :
26 -{{code language="bash"}}
27 -grep root /etc/passwd
28 -{{/code}}
27 +{{code language="bash"}}grep root /etc/passwd{{/code}}
29 29  
30 ----
29 +----
31 31  
32 32  == 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 |
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 41  | `-E` | Active les **expressions régulières étendues** (`egrep`) |
42 42  
43 ----
43 +----
44 44  
45 45  == Recherche récursive ==
46 +
46 46  {{code language="bash"}}
47 47  grep -rn "motif" /etc
48 48  {{/code}}
... ... @@ -49,16 +49,18 @@
49 49  
50 50  Cela affiche les fichiers, numéros de lignes, et lignes contenant le motif dans tout `/etc`.
51 51  
52 ----
53 +----
53 53  
54 54  == Recherche insensible à la casse ==
56 +
55 55  {{code language="bash"}}
56 56  grep -i "linux" fichier.txt
57 57  {{/code}}
58 58  
59 ----
61 +----
60 60  
61 61  == Exclusion de motif ==
64 +
62 62  {{code language="bash"}}
63 63  grep -v "erreur" journal.log
64 64  {{/code}}
... ... @@ -65,9 +65,10 @@
65 65  
66 66  Affiche toutes les lignes **ne contenant pas** le mot "erreur".
67 67  
68 ----
71 +----
69 69  
70 70  == Grep avec pipes ==
74 +
71 71  {{code language="bash"}}
72 72  ps aux | grep nginx
73 73  {{/code}}
... ... @@ -74,9 +74,10 @@
74 74  
75 75  Permet de filtrer une sortie de commande.
76 76  
77 ----
81 +----
78 78  
79 79  == grep + regex ==
84 +
80 80  {{code language="bash"}}
81 81  grep "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+" fichier.txt
82 82  {{/code}}
... ... @@ -83,16 +83,15 @@
83 83  
84 84  Extrait les lignes contenant des adresses email (simplifié).
85 85  
86 ----
91 +----
87 87  
88 88  == Astuce grep + find ==
94 +
89 89  Pour rechercher un motif dans tous les fichiers `.log` :
90 -{{code language="bash"}}
91 -find . -name "*.log" -exec grep -H "erreur" {} \;
92 -{{/code}}
96 +{{code language="bash"}}find . -name "*.log" -exec grep -H "erreur" {} \;{{/code}}
93 93  
94 ----
98 +----
95 95  
96 96  == Liens internes ==
97 -* [[Retour à la section Tutos Linux>>Wiki Batcave John.TutosLinux]]
98 98  
102 +* [[Retour à la section Tutos Linux>>Wiki Batcave John.TutosLinux.WebHome]]