Récupérer un bloc de texte avec ?GREP
Résolu/Fermé
eZula
Messages postés
3392
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
-
26 mai 2008 à 19:44
eZula Messages postés 3392 Date d'inscription samedi 26 avril 2008 Statut Contributeur Dernière intervention 8 mai 2021 - 26 mai 2008 à 21:00
eZula Messages postés 3392 Date d'inscription samedi 26 avril 2008 Statut Contributeur Dernière intervention 8 mai 2021 - 26 mai 2008 à 21:00
A voir également:
- Récupérer un bloc de texte avec ?GREP
- Comment récupérer un compte facebook piraté - Guide
- Comment recuperer un message supprimé sur whatsapp - Guide
- Recuperer video youtube - Guide
- Impossible de récupérer mon compte gmail - Guide
- Récupérer photo instagram - Guide
4 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
26 mai 2008 à 20:19
26 mai 2008 à 20:19
Salut,
Quelle est la finalité de la demande ?
Matcher absolument le retour charriot ? Ou matcher un nombre de lignes avant/après le motif ?
Sinon, essaye ça :
Quelle est la finalité de la demande ?
Matcher absolument le retour charriot ? Ou matcher un nombre de lignes avant/après le motif ?
Sinon, essaye ça :
grep -x coucou$'\n'hello fichier;-))
eZula
Messages postés
3392
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
26 mai 2008 à 20:36
26 mai 2008 à 20:36
Salut jipicy - merci
je souhaite récupérer des blocs de texte et les découper (probablement avec sed) s'ils contiennent une expression, ce qui me gênait c'est que dans ces blocs il y a des retours à la ligne
Ta commande semble fonctionner, je n'ai pas consulté le man et ne connaissais pas l'option -x :
en fait plus précisément, il s'agit de récupérer la ligne au dessus d'une ligne qui contiendrait une expression. Dans cet exemple, le but serait de récupérer la ligne au-dessus de hello ; ou plus loin, récupérer toutes les lignes qui se trouvent au-dessus de toutes les lignes contenant hello (en gras ci-dessous) :
J'entrevois quelquechose avec grep -n et sed mais qui pourrait être un peu lourd
j'imagine qu'il y a peut être plus adapté comme commande, mais je voulais déjà savoir comment traiter ces retours chariots avec grep
je souhaite récupérer des blocs de texte et les découper (probablement avec sed) s'ils contiennent une expression, ce qui me gênait c'est que dans ces blocs il y a des retours à la ligne
Ta commande semble fonctionner, je n'ai pas consulté le man et ne connaissais pas l'option -x :
grep -x coucou$'\n'hello$'\n'bonjour j coucou hello bonjour
en fait plus précisément, il s'agit de récupérer la ligne au dessus d'une ligne qui contiendrait une expression. Dans cet exemple, le but serait de récupérer la ligne au-dessus de hello ; ou plus loin, récupérer toutes les lignes qui se trouvent au-dessus de toutes les lignes contenant hello (en gras ci-dessous) :
coucou hello bonjour salut hello aurevoir hello byebye ciao hello
J'entrevois quelquechose avec grep -n et sed mais qui pourrait être un peu lourd
j'imagine qu'il y a peut être plus adapté comme commande, mais je voulais déjà savoir comment traiter ces retours chariots avec grep
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 895
26 mai 2008 à 20:43
26 mai 2008 à 20:43
[trash]$ cat ezula coucou hello bonjour salut hello aurevoir hello byebye ciao hello [trash]$ grep -B1 'hello' ezula coucou hello -- salut hello aurevoir hello -- ciao hello [trash]$ grep -B1 'hello' ezula | egrep -v '(hello|--)' coucou salut aurevoir ciao [trash]$;-))
eZula
Messages postés
3392
Date d'inscription
samedi 26 avril 2008
Statut
Contributeur
Dernière intervention
8 mai 2021
392
26 mai 2008 à 21:00
26 mai 2008 à 21:00
Parfait, merci !