Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:systeme:grep [15/07/2014 09:00] paskal |
doc:systeme:grep [06/09/2020 11:24] smolski [Exemples Pratiques] |
||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
* Objet : filtre grep | * Objet : filtre grep | ||
- | * Niveau requis : {{tag>débutant}} | + | * Niveau requis : {{tag>débutant avisé}} |
* Commentaires : //Recherche de caractères dans des fichiers textes.// | * Commentaires : //Recherche de caractères dans des fichiers textes.// | ||
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) | ||
* Suivi : | * Suivi : | ||
- | * Création par [[user>smolski]] le 23/04/2010 | + | * Création par [[user>smolski]] le 17/01/2009 |
- | * Testé par smolski le 18/10/2012 | + | * Testé par [[user>smolski]] le 18/10/2012 |
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=1039 | c'est ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=1039 | c'est ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
Ligne 39: | Ligne 39: | ||
Utilisez la commande [[:doc:systeme:cat]] pour en vérifier le contenu : | Utilisez la commande [[:doc:systeme:cat]] pour en vérifier le contenu : | ||
<code user>cat test1/essai.txt</code> | <code user>cat test1/essai.txt</code> | ||
- | <code> | + | <file config retour de la commande> |
tartempion eric | tartempion eric | ||
greg lucien | greg lucien | ||
howard charles | howard charles | ||
- | santiago germaine</code> | + | santiago germaine</file> |
De la même façon que précédemment, créons un second répertoire nommé ''test2'' dans lequel nous créons le fichier **adresse.c** contenant les chaînes de caractères suivantes : | De la même façon que précédemment, créons un second répertoire nommé ''test2'' dans lequel nous créons le fichier **adresse.c** contenant les chaînes de caractères suivantes : | ||
Ligne 55: | Ligne 55: | ||
On vérifie les deux fichiers d'un coup ainsi : | On vérifie les deux fichiers d'un coup ainsi : | ||
<code user>cat ~/test1/essai.txt ~/test2/adresse.c</code> | <code user>cat ~/test1/essai.txt ~/test2/adresse.c</code> | ||
- | <code>tartempion eric | + | <file config retour de la commande>tartempion eric |
greg lucien | greg lucien | ||
howard charles | howard charles | ||
Ligne 61: | Ligne 61: | ||
25, rue de la source | 25, rue de la source | ||
5bis, avenue linux | 5bis, avenue linux | ||
- | 3358, street gandhi</code> | + | 3358, street gandhi</file> |
===== Exemples Pratiques ===== | ===== Exemples Pratiques ===== | ||
Ligne 71: | Ligne 71: | ||
La commande suivante présente toutes les lignes du fichier essai.txt qui contiennent le caractère "**c**" : | La commande suivante présente toutes les lignes du fichier essai.txt qui contiennent le caractère "**c**" : | ||
<code user>grep c ~/test1/essai.txt</code> | <code user>grep c ~/test1/essai.txt</code> | ||
- | <code>tartempion eric | + | <file config retour de la commande>tartempion eric |
greg lucien | greg lucien | ||
- | howard charles</code> | + | howard charles</file> |
Et celle-là pour la lettre "**u**" : | Et celle-là pour la lettre "**u**" : | ||
<code user>grep u ~/test1/essai.txt</code> | <code user>grep u ~/test1/essai.txt</code> | ||
- | <code>greg lucien</code> | + | <file config retour de la commande>greg lucien</file> |
Ligne 88: | Ligne 88: | ||
<code user>grep a ~/te*/*</code> | <code user>grep a ~/te*/*</code> | ||
- | <code> | + | <file config retour de la commande> |
test1/essai.txt:tartempion eric | test1/essai.txt:tartempion eric | ||
test1/essai.txt:howard charles | test1/essai.txt:howard charles | ||
Ligne 94: | Ligne 94: | ||
test2/adresse.c:5bis, avenue linux | test2/adresse.c:5bis, avenue linux | ||
test2/adresse.c:3358, street gandhi | test2/adresse.c:3358, street gandhi | ||
- | </code> | + | </file> |
==== Les OPTIONS ==== | ==== Les OPTIONS ==== | ||
Ligne 102: | Ligne 102: | ||
L'option ''-n'' ajoute le numéro de ligne, ainsi : | L'option ''-n'' ajoute le numéro de ligne, ainsi : | ||
<code user>grep -n a ~/te*/*</code> | <code user>grep -n a ~/te*/*</code> | ||
- | <code> | + | <file config retour de la commande> |
test1/essai.txt:2:tartempion eric | test1/essai.txt:2:tartempion eric | ||
test1/essai.txt:4:howard charles | test1/essai.txt:4:howard charles | ||
test2/adresse.c:1:25, rue de la source | test2/adresse.c:1:25, rue de la source | ||
test2/adresse.c:2:5bis, avenue linux | test2/adresse.c:2:5bis, avenue linux | ||
- | test2/adresse.c:3:3358, street gandhi</code> | + | test2/adresse.c:3:3358, street gandhi</file> |
=== option -i === | === option -i === | ||
Ligne 147: | Ligne 147: | ||
Il vaut mieux mettre l'expression régulière entre apostrophes simples ou doubles '' '...' ou "..." '' comme ceci par exemple : | Il vaut mieux mettre l'expression régulière entre apostrophes simples ou doubles '' '...' ou "..." '' comme ceci par exemple : | ||
<code user>grep -n "^t" te*/*</code> | <code user>grep -n "^t" te*/*</code> | ||
- | <code>test1/essai.txt:2:tartempion eric</code> | + | <file config retour de la commande>test1/essai.txt:2:tartempion eric</file> |
Notez que les champs des lignes produites par ''grep'' (le nom du fichier, le numéro de ligne et la ligne elle-même) sont délimitées par des deux points "**:**", ce qui leur permet d'être traités à postériori par le programme awk dans des [[:doc:programmation:shell:pipe | TUBES]]. | Notez que les champs des lignes produites par ''grep'' (le nom du fichier, le numéro de ligne et la ligne elle-même) sont délimitées par des deux points "**:**", ce qui leur permet d'être traités à postériori par le programme awk dans des [[:doc:programmation:shell:pipe | TUBES]]. | ||
Ligne 154: | Ligne 154: | ||
<code user>man grep</code> | <code user>man grep</code> | ||
+ | |||
+ | ===== Lien vers le forum ===== | ||
+ | |||
+ | * [[https://debian-facile.org/viewtopic.php?pid=161583#p161583 | (Résolu) Cherche commande bash Oui - Non]] |