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 38797 Statut Contributeur 6 433
 
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 38797 Statut Contributeur 6 433 > Travail01
 
$ echo "aazzaczzccyyyaatttcc" | sed 's/aa\([^c]*c[^c]*\).*/\1/'
zzaczz
0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
hello
$ echo aazzaczzccyyayyaattcttcc | awk '{split($1, t, "aa|cc"); print t[2]}'
zzaczz
0
dubcek Messages postés 19021 Statut Contributeur 5 637
 
plus simple
$ echo aazzaczzccyyayyaattcttcc | awk -F "aa|cc" '{print $2}'
zzaczz
0
Travail01 > dubcek Messages postés 19021 Statut Contributeur
 
Merci c'est nickel !
0