0 Votes

Code source wiki de Grep

Version 1.11 par john le 2025/05/25 00:06

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