0 Votes

Code source wiki de Grep

Version 1.8 par john le 2025/05/24 23:27

Masquer les derniers auteurs
john 1.1 1 = grep et ses options =
2
3 {{toc/}}
4
5 == Présentation ==
john 1.3 6
john 1.1 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
john 1.5 11 ----
john 1.1 12
13 == Syntaxe de base ==
john 1.3 14
john 1.1 15 {{code language="bash"}}
16 grep "motif" fichier.txt
17 {{/code}}
18
john 1.5 19 ----
john 1.1 20
21 == Exemples simples ==
john 1.3 22
john 1.1 23 Rechercher une ligne contenant `ssh` :
john 1.3 24 {{code language="bash"}}grep ssh /var/log/auth.log{{/code}}
john 1.1 25
26 Afficher les lignes contenant "root" dans un fichier :
john 1.3 27 {{code language="bash"}}grep root /etc/passwd{{/code}}
john 1.1 28
john 1.5 29 ----
john 1.1 30
31 == Options courantes ==
john 1.3 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 |\\
john 1.1 41 | `-E` | Active les **expressions régulières étendues** (`egrep`) |
42
john 1.5 43 ----
john 1.1 44
45 == Recherche récursive ==
john 1.3 46
john 1.1 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
john 1.5 53 ----
john 1.1 54
55 == Recherche insensible à la casse ==
john 1.3 56
john 1.1 57 {{code language="bash"}}
58 grep -i "linux" fichier.txt
59 {{/code}}
60
john 1.5 61 ----
john 1.1 62
63 == Exclusion de motif ==
john 1.3 64
john 1.1 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
john 1.5 71 ----
john 1.1 72
73 == Grep avec pipes ==
john 1.3 74
john 1.1 75 {{code language="bash"}}
76 ps aux | grep nginx
77 {{/code}}
78
79 Permet de filtrer une sortie de commande.
80
john 1.5 81 ----
john 1.1 82
83 == grep + regex ==
john 1.3 84
john 1.1 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
john 1.5 91 ----
john 1.1 92
93 == Astuce grep + find ==
john 1.3 94
john 1.1 95 Pour rechercher un motif dans tous les fichiers `.log` :
john 1.3 96 {{code language="bash"}}find . -name "*.log" -exec grep -H "erreur" {} \;{{/code}}
john 1.1 97
john 1.5 98 ----
john 1.1 99
100 == Liens internes ==
101
john 1.7 102 * [[Retour à la section Tutos Linux>>TutosLinux.WebHome]]