#1 Le 18/05/2013, à 01:45
- un_zero_2011
[Résolu] J'ai une question à propos du "grep"
Bonjour,
J'ai un petit problème pour récupérer la ligne qui se trouve au dessus ou au dessous d'un mot clé.
Par exemple, j'ai le texte suivant :
bla bla bla X bla bla bla
bla bla X bla bla bla bla <---- (1)
bla bla bla bla Z bla bla
bla bla bla X bla bla bla <---- (2)
bla bla X bla bla bla bla
Je voudrais récupérer le "X" qui se trouve en dessous du Z (1) , et celui qui se trouve au dessus de lui (2).
Je ne pense pas que ça soit possible avec un grep .
Bien Cordialement
PS: Je débute dans le bash. Si vous avez la gentillesse de m'expliquer votre code, ou m'indiquer des sources qui expliquent clairement comment faire cette manip, je vous serai très reconnaissant.
Dernière modification par un_zero_2011 (Le 18/05/2013, à 11:33)
Hors ligne
#2 Le 18/05/2013, à 06:02
- xavier4811
Re : [Résolu] J'ai une question à propos du "grep"
Bonjour,
avec grep pas sur mais avec sed oui, tu devrait trouver ton bonheur la dedans : sed1line_fr
ou peu être avec awk : awk1line
Hors ligne
#3 Le 18/05/2013, à 06:04
- pingouinux
Re : [Résolu] J'ai une question à propos du "grep"
Bonjour,
Pour récupérer les deux lignes qui encadrent celle contenant le mot Z :
awk '/\<Z\>/{print lig;getline;print;exit}{lig=$0}' fichier
bla bla X bla bla bla bla <---- (1)
bla bla bla X bla bla bla <---- (2)
Explications :
awk traite les lignes une à une.
/\<Z\>/{print lig;getline;print;exit}
Si la ligne en cours contient le mot Z, on imprime lig (la ligne précédente), on passe à la ligne suivante, on l'imprime, et on sort
{lig=$0}
On stocke la ligne en cours dans la variable lig
Hors ligne
#4 Le 18/05/2013, à 06:43
- gigiair
Re : [Résolu] J'ai une question à propos du "grep"
grep -B1 -A1 Z fichier|grep -v Z
-B1 : une ligne avant (Before), -A1 : Une ligne après (After), pipe : -v sauf cette ligne
Dernière modification par gigiair (Le 18/05/2013, à 06:44)
--
JJR.
Hors ligne
#5 Le 18/05/2013, à 06:54
- pingouinux
Re : [Résolu] J'ai une question à propos du "grep"
@gigiair #4 : Pas mal ! Tu peux même remplacer "-B1 -A1" par "-C1".
Hors ligne
#6 Le 18/05/2013, à 10:22
- un_zero_2011
Re : [Résolu] J'ai une question à propos du "grep"
Merci à tous pour vos réponses .
Dernière modification par un_zero_2011 (Le 18/05/2013, à 11:11)
Hors ligne
#7 Le 18/05/2013, à 11:41
- Hizoka
Re : [Résolu] J'ai une question à propos du "grep"
gigiair => merci !
je ne savais pas que grep le faisait !
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne