Grep + expression régulière
Résolu/Fermé
Poireau007
Messages postés
83
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
17 octobre 2012
-
27 déc. 2011 à 14:31
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 27 déc. 2011 à 23:59
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 27 déc. 2011 à 23:59
A voir également:
- Grep + expression régulière
- Expression de recherche - Guide
- T'as du ping expression ✓ - Forum Réseau
- Tu es un amour expression ✓ - Forum Loisirs / Divertissements
- Avoir du ping expression - Forum Réseau
- Expression encoder - Télécharger - Divers Utilitaires
7 réponses
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
Modifié par lami20j le 27/12/2011 à 23:14
Modifié par lami20j le 27/12/2011 à 23:14
Salut,
Mais pourquoi tu dis qu'avec sed ça ne marchera pas?
Voici deux exemples
lami20j
Mais pourquoi tu dis qu'avec sed ça ne marchera pas?
Voici deux exemples
:~$ grep 'www.lemonde.fr/' plop |cut -d'/' -f4 voyage-europe voyage-afrique voyage-ameriques service actualite-medias sitemap service service :~$perl -ne 's/www\.lemonde\.fr\/(.*?)\//$1/ and print "$1\n"' plop voyage-europe voyage-afrique voyage-ameriques service actualite-medias sitemap service service
lami20j
dubcek
Messages postés
18757
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
19 décembre 2024
5 623
27 déc. 2011 à 14:52
27 déc. 2011 à 14:52
hello
ou avec grep -F
ou avec grep -F
$ echo -e "aaaaaa\n.*\nbbbbbbbb" | grep '.*' aaaaaa .* bbbbbbbb $ $ echo -e "aaaaaa\n.*\nbbbbbbbb" | grep -F '.*' .* $
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 déc. 2011 à 14:54
27 déc. 2011 à 14:54
Salut,
Effectivement ;-)
Effectivement ;-)
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 déc. 2011 à 23:48
27 déc. 2011 à 23:48
Seulement avec grep
:~$ grep -o 'www.lemonde.fr/[^/]*\b' plop |grep -o '/.*'|grep -o '[^/]*' voyage-europe voyage-afrique voyage-ameriques service actualite-medias sitemap service service :~$ grep -o 'www.lemonde.fr/[^/]*\b' plop |grep -o '\b[^/]*$' voyage-europe voyage-afrique voyage-ameriques service actualite-medias sitemap service service
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
27 déc. 2011 à 14:38
27 déc. 2011 à 14:38
Salut,
Ben oui, en échappant les caractères je suppose...
Ben oui, en échappant les caractères je suppose...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
27 déc. 2011 à 14:50
27 déc. 2011 à 14:50
Salut,
Un regex n'est qu'une suite de caractère qui n'a aucune valeur sans un interpréteur ou en dehors d'un contexte de regex.
Oui c'est possible
Un regex n'est qu'une suite de caractère qui n'a aucune valeur sans un interpréteur ou en dehors d'un contexte de regex.
Oui c'est possible
:~$ cat plop /^([+-]?\d+)\s*/ /^1(?:((??{ $z0 }))1(?{ $z0 = $z1; $z1 .= $^N; }))+$/ :~$ egrep --color '.*' plop /^([+-]?\d+)\s*/ /^1(?:((??{ $z0 }))1(?{ $z0 = $z1; $z1 .= $^N; }))+$/ :~$ egrep --color '\\d' plop /^([+-]?\d+)\s*/ :~$ egrep --color '\$.*' plop /^1(?:((??{ $z0 }))1(?{ $z0 = $z1; $z1 .= $^N; }))+$/ :~$
Poireau007
Messages postés
83
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
17 octobre 2012
15
27 déc. 2011 à 15:14
27 déc. 2011 à 15:14
Merci pour vos réponses,
je me suis surement mal exprimé, je voulais intégrer une expression régulière dans mon grep (comme un sed dans le grep en fait)
et non recupérer un motif d'expression regulière.
Ma question de départ n'est pas claire, dslé !
je me suis surement mal exprimé, je voulais intégrer une expression régulière dans mon grep (comme un sed dans le grep en fait)
et non recupérer un motif d'expression regulière.
Ma question de départ n'est pas claire, dslé !
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 419
27 déc. 2011 à 15:15
27 déc. 2011 à 15:15
grep -E
Poireau007
Messages postés
83
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
17 octobre 2012
15
27 déc. 2011 à 22:50
27 déc. 2011 à 22:50
Salut zipe31,
l'option -E de grep que tu proposes (qui me semble t-il est l'équivalent de egrep) permet de récupérer une expression si on la connait déjà c'est bien ça ?
dans mon cas je ne connais pas par avance l'expression que je souhaite récupérer.
l'option -E de grep que tu proposes (qui me semble t-il est l'équivalent de egrep) permet de récupérer une expression si on la connait déjà c'est bien ça ?
dans mon cas je ne connais pas par avance l'expression que je souhaite récupérer.
Poireau007
Messages postés
83
Date d'inscription
jeudi 5 février 2009
Statut
Membre
Dernière intervention
17 octobre 2012
15
27 déc. 2011 à 22:47
27 déc. 2011 à 22:47
Ce sera plus clair avec un exemple (bout de code du site lemonde)
je souhaiterais recupérer toutes les occurences de ce type :
www.lemonde.fr/MON OCCURENCE/....
donc je souhaiterais récupérer les infos suivantes :
voyage-europe
voyage-afrique
voyage-ameriques
service
actualite-medias
sitemap
service
Pour faire cela je voudrais eviter les sed car ma commande ne serais pas réutilisable ailleurs.
Si cela est possible, je voudrais faire un grep et intégrer dedans l'expression regulière qui me permettrais d'arriver au résultat au dessus.
Avec un :
grep .*fr/.*/.*
j'ai un début de réponse, j'ai toutes les lignes qui m'intéressent, mais malheureusement il me manque les actions :
supprimer le contenu qui est avant et le contenu qui est après mon pattern
<a href="https://www.lemonde.fr/voyage-europe/">Voyage Europe</a> <a href="https://www.lemonde.fr/voyage-afrique/">Voyage Afrique</a> <a href="https://www.lemonde.fr/voyage-ameriques/">Voyage Amériques</a> | <a href="https://www.lemonde.fr/faq/?question=28465-contacter-redaction-28465" rel="nofollow">Qui sommes-nous ?</a> | <a href="https://www.lemonde.fr/actualite-medias/article/2010/11/03/la-charte-d-ethique-et-de-deontologie-du-groupe-le-monde_1434737_3236.html" rel="nofollow">Charte groupe</a> | <a href="http://www.lemonde.fr/sitemap/afficher_index/index.html">Index</a> | <a href="https://www.lemonde.fr/faq/" rel="nofollow">Aide et contact</a> | <a href="http://www.mondepub.fr/internet" onclick="window.open(this.href);return false;" rel="nofollow">Publicité</a> | <a href="https://moncompte.lemonde.fr/cgv#faq_content_79" rel="nofollow">Abonnements</a> </div> <p class="dscpt"> <strong>Journal</strong> d'information en ligne, Le Monde.fr offre à ses visiteurs un panorama complet de l'<strong>actualité</strong>. Découvrez chaque jour toute l'<strong>info</strong> en direct (de la politique à l'économie en passant par le sport et la météo) sur Le Monde.fr, le site de news leader de la presse française en ligne.
je souhaiterais recupérer toutes les occurences de ce type :
www.lemonde.fr/MON OCCURENCE/....
donc je souhaiterais récupérer les infos suivantes :
voyage-europe
voyage-afrique
voyage-ameriques
service
actualite-medias
sitemap
service
Pour faire cela je voudrais eviter les sed car ma commande ne serais pas réutilisable ailleurs.
Si cela est possible, je voudrais faire un grep et intégrer dedans l'expression regulière qui me permettrais d'arriver au résultat au dessus.
Avec un :
grep .*fr/.*/.*
j'ai un début de réponse, j'ai toutes les lignes qui m'intéressent, mais malheureusement il me manque les actions :
supprimer le contenu qui est avant et le contenu qui est après mon pattern
27 déc. 2011 à 23:54
je n'ai jamais trop compris comment me servir de cut avec les -c -b -f etc...
Tu utilises -d puis -f , je n'avais pas compris que ça marchais comme ça, ça fait un peu penser a awk.
je ne dis pas que ça ne marche pas avec sed, mais ça ne m'a pas l'air très "universel", si demain je passe par un autre code.
En tout cas merci, je vais essayer d'assimiler ce code pour m'en reservir !
27 déc. 2011 à 23:59
https://forums.commentcamarche.net/forum/affich-24011976-grep-expression-reguliere#10