Léa-Linux & amis :   LinuxFR   GCU-Squad   GNU
commande grep?
Envoyé par: Yo

Bonjour,
J’ai un niveau assez modeste en linux et je me heurte à un petit problème.
Pour mieux l’expliquer, je vous l’illustre par un exemple : je souhaite pouvoir dans un fichier rechercher une certaine information et la copier dans un fichier cible.

Le fichier source se présente comme illustré en fin. Dans ce fichier source, je souhaite trouver et copier l’ensemble des informations qui se trouve entre
--------------------- info_info Begin ------------------------ et ---------------------- info_info End -------------------------

J’ai essayé avec la commande grep : grep -i '[^info_info Begin] [info_info End $]' /../…/fichiersource > /…/…/cible

Avec ceci j’ai bien dans le fichier cible les infos entre info_info Begin et info_info End mais j’ai aussi les données entre alalala debut et end ou dans tralalalala car elles s’appellent aussi info_ ou info_info.

Je souhaiterai faire afficher uniquement les infos contenu entre info_info begin et info_info end.

Avez-vous une solution à me proposer?,

D’avance merci pour votre lecture et votre aide.


Fichier source :

---------------------- alalala End -------------------------
info_info
info_ddd
---------------------- alalala End -------------------------

---------------------- yoyoyoyoy End -------------------------
gggggggg
---------------------- yoyoyoyoy End -------------------------

--------------------- info_info Begin ------------------------
Blablablablablabla
xcxcxcxc
xcxcc
---------------------- info_info End -------------------------

---------------------- tralalala End -------------------------
Info_glooggg
Info_glooggg
---------------------- tralalala End -------------------------




Poste le Tuesday 9 December 2008 20:36:40
Répondre     Citer    
Re: commande grep?

Je suggère d'utiliser plutot awk pour ça. Awk fait un traitement à partir des lignes lues correspondants à certains motifs, alors que grep ne fait que chercher ces motfs.

Awk (qui est en fait Gawk, le GNU awk, sous Linux) est amplement documenté. Je suggère d'en parcourir la documentation, qui comporte une partie introductive.

----

Basile STARYNKEVITCH

Membre de l'APRIL « promouvoir et défendre le logiciel libre » - adhérez vous aussi à l'APRIL!

Projet logiciel libre: RefPerSys

Poste le Tuesday 9 December 2008 21:34:03
Répondre     Citer    
Re: commande grep?

sed -n '/info_info Begin/,/info_info End/w /ton/chemin/cible' /un/chemin/fichiersource

Poste le Tuesday 9 December 2008 22:47:50
Répondre     Citer    
Re: commande grep?
Envoyé par: Yo

Bonjour,

La commande seb marche très bien. Je pense que je vais essayer d'en apprendre plus sur sed et awk

Merci Basile STARYNKEVITCH et Иван pour votre aide.



Poste le Wednesday 10 December 2008 10:46:37
Répondre     Citer    

Veuillez vous authentifier auparavant pour commenter.

 

Ce forum !
commande grep?
Pour poser vos questions sur les scripts shell, le Perl, le C, etc... Attention : nous ne sommes pas des spécialistes du dev, ce forum est juste pour de petites aides ponctuelles concernant le développement et les outils de développement.

Sauf mention contraire, les documentations publiées sont sous licence Creative-Commons