Conserver une chaine d'un fichier entre deux chaines

Résolu
Travail01 -  
 Travail01 -
Bonjour,

Je cherchais à conserver une chaîne de mon fichier présente entre deux autres chaines (disons entre "aa" et "cc"). J'ai réussi à le faire cependant "aa" et "cc" se répètent plusieurs fois et donc j'aimerais récupérer seulement ce qu'il y a entre la première fois où apparaissent "aa" et "cc".
Ce que je récupère actuellement c'est la chaîne entre la première fois où apparaît "aa" et la dernière fois où est "cc"
Ci-dessous le détail de ce que je veux pour être plus clair ; )

ma commande : sed 's/.*aa\(.*\)cc.*/\1/' monfic.txt
contenu de monfic.txt (1 seule ligne) : aazzaczzccyyayyaattcttcc
résultat obtenu : zzaczzccyyayyaattctt
résultat voulu : zzaczz

Merci par avance de votre aide :)

A voir également:

2 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

$ echo "aazzzccyyyaatttcc" | sed 's/aa\([^c]*\)c.*/\1/'
zzz

0
Travail01
 
Merci ! J'ai oublié de préciser que je pouvais avoir un truc du genre "aazzaczzccyyayyaattcttcc" dans mon fichier donc le fait de vérifier la présence d'un "c" ne fonctionnerai pas : j'aurai "aazza" alors que je voudrai "aazzaczz".
(Je viens d'éditer mon post)
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431 > Travail01
 
$ echo "aazzaczzccyyyaatttcc" | sed 's/aa\([^c]*c[^c]*\).*/\1/'
zzaczz
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
$ echo aazzaczzccyyayyaattcttcc | awk '{split($1, t, "aa|cc"); print t[2]}'
zzaczz
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
plus simple
$ echo aazzaczzccyyayyaattcttcc | awk -F "aa|cc" '{print $2}'
zzaczz
0
Travail01 > dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention  
 
Merci c'est nickel !
0