Grep la ligne du dessus
Résolu
Stéphane70
-
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
zipe31 Messages postés 36402 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Je cherche le moyen de renvoyer dans un fichier ma recherche grep + la ligne qui se trouve juste au dessus.
Je suis sur AIX et je n'ai pas l'impression que j'ai l'option sur mon grep.
Auriez vous une solution à me proposer ?
Merci d'avance pour votre aide
Stéphane70
Je cherche le moyen de renvoyer dans un fichier ma recherche grep + la ligne qui se trouve juste au dessus.
Je suis sur AIX et je n'ai pas l'impression que j'ai l'option sur mon grep.
Auriez vous une solution à me proposer ?
Merci d'avance pour votre aide
Stéphane70
A voir également:
- Grep afficher ligne
- Partager photos en ligne - Guide
- Mètre en ligne - Guide
- Aller à la ligne excel - Guide
- Apparaitre hors ligne instagram - Guide
- Afficher taille dossier windows - Guide
22 réponses
Merci pour ton aide. Le problème est que je veux aussi recuperer la ligne avec les motifs recherché.
Un exemple étant plus parlant qu'un grand discours, voici un exemple de fichier que je veux traiter :
Donc je fais une recherche avec grep sur A00 et Erreur et ca me sort la ligne mais je voudrais aussi la ligne du dessus.
Mon script donne pour l'instant et avec pour resultat juste la recherche sur les motifs :
Merci pour ton aide
Amicalement
Stéphane70
Un exemple étant plus parlant qu'un grand discours, voici un exemple de fichier que je veux traiter :
156 truc machin bidule machin truc 156A00 Si refus : Erreur inconnue machin truc 156B00 ok machin truc 156COO ok 157 machin bidule chose machin chose 157A00 ok machin chose 157B00 ok machin chose 157C00
Donc je fais une recherche avec grep sur A00 et Erreur et ca me sort la ligne mais je voudrais aussi la ligne du dessus.
Mon script donne pour l'instant et avec pour resultat juste la recherche sur les motifs :
grep A00 Test|grep Erreur>>resultat
Merci pour ton aide
Amicalement
Stéphane70
$ cat plop 156 truc machin bidule machin truc 156A00 Si refus : Erreur inconnue machin truc 156B00 ok machin truc 156COO ok 157 machin bidule chose machin chose 157A00 ok machin chose 157B00 ok machin chose 157C00 $ sed -n '/A00.*Erreur/{H;1!g;p;};h' plop 156 truc machin bidule machin truc 156A00 Si refus : Erreur inconnue $
;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ah chose très bizarre.
La commande s'execute sans message d'erreur mais je n'ai pas de resultat.
Je viens d'aller verifier dans le fichier et pourtant il y a bien les lignes correspondantes.
Une idée ?
Et encore merci pour ton aide.
Amicalement
Stéphane70
La commande s'execute sans message d'erreur mais je n'ai pas de resultat.
Je viens d'aller verifier dans le fichier et pourtant il y a bien les lignes correspondantes.
Une idée ?
Et encore merci pour ton aide.
Amicalement
Stéphane70
Je te présente toutes mes excuses.
Je n'ai pas testé sur le bon fichier.
Ca fonctionne à merveille sur linux mais sur mon aix ca ne sort que la ligne en question.
Merci encore pour ton aide précieuse et ta sympathie.
Amicalement
Stéphane70
Je n'ai pas testé sur le bon fichier.
Ca fonctionne à merveille sur linux mais sur mon aix ca ne sort que la ligne en question.
Merci encore pour ton aide précieuse et ta sympathie.
Amicalement
Stéphane70
Ca ne change rien.
Néanmoins, je viens de voir précisement ce que cela me sort.
En fait, il donne la première ligne correspondante, il saute une ligne et donne les deux premierès correspondantes, il saute une ligne et donne les trois premières lignes correspondantes etc
Il me donne l'impression de boucler.
Amicalement
Stéphane70
Néanmoins, je viens de voir précisement ce que cela me sort.
En fait, il donne la première ligne correspondante, il saute une ligne et donne les deux premierès correspondantes, il saute une ligne et donne les trois premières lignes correspondantes etc
Il me donne l'impression de boucler.
Amicalement
Stéphane70
Voici debut du fichier :
La commande :
me donne le resultat suivant :
Alors que je souhaiterais le resultat :
Voili, Voilou
Encore merci
Amicalement
Stéphane70
Depot Date Heure Resultat Taille Duree Vx ==================================================================================================================================== 101 @POINT A@ 16/11/10 18:14 S0 Bonne execution 0 04 /usr1/TELFIC/101A00.ZIP,\TELFIC\101A00.ZIP,,,V SI Refus : fichier inexistant 0 04 /usr1/TELFIC/101C00.ZIP,\TELFIC\101C00.ZIP,,,V A* Non execute 0 04 /usr1/TELFIC/101H00.ZIP,\TELFIC\101H00.ZIP,,,V A* Non execute 0 04 /usr1/TELFIC/101F00.ZIP,\TELFIC\101F00.ZIP,,,V A* Non execute 0 04 -/usr1/TELFIC/101CC0.ZIP,\TELFIC\101CC0.ZIP,,,V A* Non execute 0 04 ------------------------------------------------------------------------------------------------------------------------------------ 102 @POINT B@ 16/11/10 18:00 S0 Bonne execution 1 04 /usr1/TELFIC/102A00.ZIP,\TELFIC\102A00.ZIP,,,V S0 Bonne execution 143 1 04 /usr1/TELFIC/102C00.ZIP,\TELFIC\102C00.ZIP,,,V S0 Bonne execution 145 0 04 /usr1/TELFIC/102H00.ZIP,\TELFIC\102H00.ZIP,,,V S0 Bonne execution 135 1 04 /usr1/TELFIC/102F00.ZIP,\TELFIC\102F00.ZIP,,,V S0 Bonne execution 135 1 04 -/usr1/TELFIC/102CC0.ZIP,\TELFIC\102CC0.ZIP,,,V S0 Bonne execution 722 1 04 ------------------------------------------------------------------------------------------------------------------------------------ 104 @POINT C@ 16/11/10 18:00 S0 Bonne execution 0 04 /usr1/TELFIC/104A00.ZIP,\TELFIC\104A00.ZIP,,,V SI Refus : fichier inexistant 731 1 04 /usr1/TELFIC/104C00.ZIP,\TELFIC\104C00.ZIP,,,V S0 Bonne execution 1767 1 04 /usr1/TELFIC/104H00.ZIP,\TELFIC\104H00.ZIP,,,V S0 Bonne execution 135 0 04 /usr1/TELFIC/104F00.ZIP,\TELFIC\104F00.ZIP,,,V S0 Bonne execution 135 1 04 -/usr1/TELFIC/104CC0.ZIP,\TELFIC\104CC0.ZIP,,,V S0 Bonne execution 5740 1 04 ------------------------------------------------------------------------------------------------------------------------------------ 108 @POINT D@ 16/11/10 18:00 S0 Bonne execution 0 04 /usr1/TELFIC/108A00.ZIP,/usr1/TELFIC/108A00.ZIP,,,V S0 Bonne execution 7845 1 04 /usr1/TELFIC/108C00.ZIP,/usr1/TELFIC/108C00.ZIP,,,V S0 Bonne execution 1235 1 04 /usr1/TELFIC/108H00.ZIP,/usr1/TELFIC/108H00.ZIP,,,V S0 Bonne execution 184 0 04 /usr1/TELFIC/108F00.ZIP,/usr1/TELFIC/108F00.ZIP,,,V S0 Bonne execution 7672 1 04 -/usr1/TELFIC/108CC0.ZIP,/usr1/TELFIC/108CC0.ZIP,,,V S0 Bonne execution 2869 1 04 -/usr1/TELFIC/108FDL.ZIP,/usr1/TELFIC/108FDL.ZIP,,,V S0 Bonne execution 5902 1 04 ------------------------------------------------------------------------------------------------------------------------------------
La commande :
sed -n '/A00.*inexistant/{H;1!g;p;};h' fichier
me donne le resultat suivant :
/usr1/TELFIC/101A00.ZIP,\TELFIC\101A00.ZIP,,,V SI Refus : fichier inexistant 0 04 /usr1/TELFIC/101A00.ZIP,\TELFIC\101A00.ZIP,,,V SI Refus : fichier inexistant 0 04 /usr1/TELFIC/104A00.ZIP,\TELFIC\104A00.ZIP,,,V SI Refus : fichier inexistant 731 1 04
Alors que je souhaiterais le resultat :
101 @POINT A@ 16/11/10 18:14 S0 Bonne execution 0 04 /usr1/TELFIC/101A00.ZIP,\TELFIC\101A00.ZIP,,,V SI Refus : fichier inexistant 0 04 104 @POINT C@ 16/11/10 18:00 S0 Bonne execution 0 04 /usr1/TELFIC/104A00.ZIP,\TELFIC\104A00.ZIP,,,V SI Refus : fichier inexistant 731 1 04
Voili, Voilou
Encore merci
Amicalement
Stéphane70
Désolé, même resultat.
Ce qui est surprenant c'est que mon linux/ubuntu la commande fonctionne à merveille mais que du moment ou je suis l'aix, ca coince.
Merci encore pour ton aide
Amicalement
Stéphane70
Ce qui est surprenant c'est que mon linux/ubuntu la commande fonctionne à merveille mais que du moment ou je suis l'aix, ca coince.
Merci encore pour ton aide
Amicalement
Stéphane70
ok, le cat -A n'existe pas sous Aix.
Donc je te donne le resultat donné sous linux :
Amicalement
Stéphane70
Donc je te donne le resultat donné sous linux :
^M$ Depot Date Heure Resultat Taille Duree Vx^M$ ====================================================================================================================================^M$ 101 @POINT A@ 16/11/10 18:14 S0 Bonne execution 0 04^M$ /usr1/TELFIC/101A00.ZIP,\TELFIC\101A00.ZIP,,,V SI Refus : fichier inexistant 0 04^M$ /usr1/TELFIC/101C00.ZIP,\TELFIC\101C00.ZIP,,,V A* Non execute 0 04^M$ /usr1/TELFIC/101H00.ZIP,\TELFIC\101H00.ZIP,,,V A* Non execute 0 04^M$ /usr1/TELFIC/101F00.ZIP,\TELFIC\101F00.ZIP,,,V A* Non execute 0 04^M$ -/usr1/TELFIC/101CC0.ZIP,\TELFIC\101CC0.ZIP,,,V A* Non execute 0 04^M$ ------------------------------------------------------------------------------------------------------------------------------------^M$ 102 @POINT B@ 16/11/10 18:00 S0 Bonne execution 1 04^M$ /usr1/TELFIC/102A00.ZIP,\TELFIC\102A00.ZIP,,,V S0 Bonne execution 143 1 04^M$ /usr1/TELFIC/102C00.ZIP,\TELFIC\102C00.ZIP,,,V S0 Bonne execution 145 0 04^M$ /usr1/TELFIC/102H00.ZIP,\TELFIC\102H00.ZIP,,,V S0 Bonne execution 135 1 04^M$ /usr1/TELFIC/102F00.ZIP,\TELFIC\102F00.ZIP,,,V S0 Bonne execution 135 1 04^M$ -/usr1/TELFIC/102CC0.ZIP,\TELFIC\102CC0.ZIP,,,V S0 Bonne execution 722 1 04^M$ ------------------------------------------------------------------------------------------------------------------------------------^M$ 104 @POINT C@ 16/11/10 18:00 S0 Bonne execution 0 04^M$ /usr1/TELFIC/104A00.ZIP,\TELFIC\104A00.ZIP,,,V SI Refus : fichier inexistant 731 1 04^M$ /usr1/TELFIC/104C00.ZIP,\TELFIC\104C00.ZIP,,,V S0 Bonne execution 1767 1 04^M$ /usr1/TELFIC/104H00.ZIP,\TELFIC\104H00.ZIP,,,V S0 Bonne execution 135 0 04^M$ /usr1/TELFIC/104F00.ZIP,\TELFIC\104F00.ZIP,,,V S0 Bonne execution 135 1 04^M$ -/usr1/TELFIC/104CC0.ZIP,\TELFIC\104CC0.ZIP,,,V S0 Bonne execution 5740 1 04^M$ ------------------------------------------------------------------------------------------------------------------------------------^M$ 108 @POINT D@ 16/11/10 18:00 S0 Bonne execution 0 04^M$ /usr1/TELFIC/108A00.ZIP,/usr1/TELFIC/108A00.ZIP,,,V S0 Bonne execution 7845 1 04^M$ /usr1/TELFIC/108C00.ZIP,/usr1/TELFIC/108C00.ZIP,,,V S0 Bonne execution 1235 1 04^M$ /usr1/TELFIC/108H00.ZIP,/usr1/TELFIC/108H00.ZIP,,,V S0 Bonne execution 184 0 04^M$ /usr1/TELFIC/108F00.ZIP,/usr1/TELFIC/108F00.ZIP,,,V S0 Bonne execution 7672 1 04^M$ -/usr1/TELFIC/108CC0.ZIP,/usr1/TELFIC/108CC0.ZIP,,,V S0 Bonne execution 2869 1 04^M$ -/usr1/TELFIC/108FDL.ZIP,/usr1/TELFIC/108FDL.ZIP,,,V S0 Bonne execution 5902 1 04^M$ ------------------------------------------------------------------------------------------------------------------------------------^M$ $
Amicalement
Stéphane70
^M$
Voilà le coupable ;-((
Des retours chariots à la WIndows ;-((
Ça m'étonne même que ça marche sous Ubuntu ;-\
Il faut convertir ton fichier sous AIX au format Unix. Soit avec dos2unix (si installé) soit avec "sed", voir la fiche : https://forums.commentcamarche.net/forum/affich-37620064-sed-conversion-retours-chariots-dos-crlf-unix-lf
Sinon essaye ça (sur AIX) :
Voilà le coupable ;-((
Des retours chariots à la WIndows ;-((
Ça m'étonne même que ça marche sous Ubuntu ;-\
Il faut convertir ton fichier sous AIX au format Unix. Soit avec dos2unix (si installé) soit avec "sed", voir la fiche : https://forums.commentcamarche.net/forum/affich-37620064-sed-conversion-retours-chariots-dos-crlf-unix-lf
Sinon essaye ça (sur AIX) :
sed -n 'N;/.*\r\n.*A00.*inexistant/p' fichier
Non, je pense que les retours chariots sont dû au transfert en ftp de mon aix a mon linux.
Néanmoins, je vais jeter un oeil mais il me semble avoir déjà eu ce type de problème avec les transferts ftp.
Sinon la commande :
Amicalement
Stéphane70
Néanmoins, je vais jeter un oeil mais il me semble avoir déjà eu ce type de problème avec les transferts ftp.
Sinon la commande :
sed -n 'N;/.*\r\n.*A00.*inexistant/p' fichierne renvoi rien, même pas les lignes d'avant.
Amicalement
Stéphane70
Ca donne ceci :
Amicalement
Stéphane70
101 @POINT A@ 16/11/10 1\ 8:14 S0 Bonne execution 0 04\r$ /usr1/TELFIC/101A00.ZIP,\TELFIC\101A00.ZIP,,,V \ SI Refus : fichier inexistant 0 04\r$ /usr1/TELFIC/101C00.ZIP,\TELFIC\101C00.ZIP,,,V \ A* Non execute 0 04\r$ /usr1/TELFIC/101H00.ZIP,\TELFIC\101H00.ZIP,,,V \ A* Non execute 0 04\r$ /usr1/TELFIC/101F00.ZIP,\TELFIC\101F00.ZIP,,,V \ A* Non execute 0 04\r$ -/usr1/TELFIC/101CC0.ZIP,\TELFIC\101CC0.ZIP,,,V \ A* Non execute 0 04\r$ -----------------------------------------------------------------------\ -------------------------------------------------------------\r$ 102 @POINT B@ 16/11/10 1\ 8:00 S0 Bonne execution 1 04\r$ /usr1/TELFIC/102A00.ZIP,\TELFIC\102A00.ZIP,,,V \ S0 Bonne execution 143 1 04\r$ /usr1/TELFIC/102C00.ZIP,\TELFIC\102C00.ZIP,,,V \ S0 Bonne execution 145 0 04\r$ /usr1/TELFIC/102H00.ZIP,\TELFIC\102H00.ZIP,,,V \ S0 Bonne execution 135 1 04\r$ /usr1/TELFIC/102F00.ZIP,\TELFIC\102F00.ZIP,,,V \ S0 Bonne execution 135 1 04\r$ -/usr1/TELFIC/102CC0.ZIP,\TELFIC\102CC0.ZIP,,,V \ S0 Bonne execution 722 1 04\r$ -----------------------------------------------------------------------\ -------------------------------------------------------------\r$ 104 @POINT C@ 16/11/10 1\ 8:00 S0 Bonne execution 0 04\r$ /usr1/TELFIC/104A00.ZIP,\TELFIC\104A00.ZIP,,,V \ SI Refus : fichier inexistant 731 1 04\r$ /usr1/TELFIC/104C00.ZIP,\TELFIC\104C00.ZIP,,,V \ S0 Bonne execution 1767 1 04\r$ /usr1/TELFIC/104H00.ZIP,\TELFIC\104H00.ZIP,,,V \ S0 Bonne execution 135 0 04\r$ /usr1/TELFIC/104F00.ZIP,\TELFIC\104F00.ZIP,,,V \ S0 Bonne execution 135 1 04\r$ -/usr1/TELFIC/104CC0.ZIP,\TELFIC\104CC0.ZIP,,,V \ S0 Bonne execution 5740 1 04\r$ -----------------------------------------------------------------------\ -------------------------------------------------------------\r$ 108 @POINT D@ 16/11/10 1\ 8:00 S0 Bonne execution 0 04\r$ /usr1/TELFIC/108A00.ZIP,/usr1/TELFIC/108A00.ZIP,,,V \ S0 Bonne execution 7845 1 04\r$ /usr1/TELFIC/108C00.ZIP,/usr1/TELFIC/108C00.ZIP,,,V \ S0 Bonne execution 1235 1 04\r$ /usr1/TELFIC/108H00.ZIP,/usr1/TELFIC/108H00.ZIP,,,V \ S0 Bonne execution 184 0 04\r$ /usr1/TELFIC/108F00.ZIP,/usr1/TELFIC/108F00.ZIP,,,V \ S0 Bonne execution 7672 1 04\r$ -/usr1/TELFIC/108CC0.ZIP,/usr1/TELFIC/108CC0.ZIP,,,V \ S0 Bonne execution 2869 1 04\r$ -/usr1/TELFIC/108FDL.ZIP,/usr1/TELFIC/108FDL.ZIP,,,V \ S0 Bonne execution 5902 1 04\r$
Amicalement
Stéphane70
Désolé, vraiment désolé :
Amicalement
Stéphane70
sed : 0602-404 Function N;s/^M|/ cannot be parsed
Amicalement
Stéphane70
Peux-tu me mettre ton fichier (ou un bout) sur Cijoint, histoire que je regarde de plus près si ça vient du fichier ou du système ?
La commande me renvoi effectivement toutes les lignes ou le mot inexistant apparait.
Par contre pas la la ligne du dessus et sans prendre en compte le "A00".
Je t'ai déposé le fichier : http://www.cijoint.fr/cjlink.php?file=cj201011/cijHiGcuuC.txt
Merci encore pour ton aide
Amicalement
Stéphane70
Par contre pas la la ligne du dessus et sans prendre en compte le "A00".
Je t'ai déposé le fichier : http://www.cijoint.fr/cjlink.php?file=cj201011/cijHiGcuuC.txt
Merci encore pour ton aide
Amicalement
Stéphane70
Bonjour,
Je suis désolé mais tout a raté.
La première commande ne renvoi rien.
La deuxième commande renvoie les lignes avec inexistant mais pas la ligne du dessus.
Et les deux autres commandes ne renvoies rien également.
C'est à s'arracher les cheveux.
En tout cas merci pour ton aide précieuse.
Amicalement
Stéphane70
Je suis désolé mais tout a raté.
La première commande ne renvoi rien.
La deuxième commande renvoie les lignes avec inexistant mais pas la ligne du dessus.
Et les deux autres commandes ne renvoies rien également.
C'est à s'arracher les cheveux.
En tout cas merci pour ton aide précieuse.
Amicalement
Stéphane70