|
|
|
|
Salut,
je cherche une solution pour matcher un bloc de texte avec ?grep. L'obstacle est l'identification du retour chariot. Plus concrètement :
cat j coucou hello bonjour
coucou hello
Configuration: Linux Suse Firefox 2.0.0.14
Salut,
grep -x coucou$'\n'hello fichier;-)) JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. |
Salut jipicy - merci
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 |
[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]$;-)) JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. |