AWK/SED? sélection d'une partie de paragraphe

bulluk Messages postés 8 Statut Membre -  
bulluk Messages postés 8 Statut Membre -
Bonjour,

Je reviens vers vous pour une question qui va vous paraître bien bete mais je n'arrive pas à m'en sortir avec les susbtring, les expressions régulières et le fait que ce soit sur plusieurs lignes.

J'ai dans un fichier texte un paragraphe contenant sur plusieurs lignes:
Format: (t1,I5,t7,I4,
t29,I1,t31,I1,
t65,A3,t69,A3)

Je voudrais simplement récupérer ce qu'il y a entre les deux parenthèses dans une variable, comme suit:
t1,I5,t7,I4,t29,I1,t31,I1,t65,A3,t69,A3

Un grand merci d'avance

2 réponses

jipicy Messages postés 41342 Statut Modérateur 4 896
 
Salut,

Il y a sûrement plus simple :
jp@MDK:~/tmpfs ssh$ cat fic

blabla
bla
Format: (t1,I5,t7,I4,
t29,I1,t31,I1,
t65,A3,t69,A3)
bla
blabla

jp@MDK:~/tmpfs ssh$ sed -n '/(/!b;:z;/(/N;/)$/! bz;s/\n//g;s/.*(\(.*\))/\1/p' fic
t1,I5,t7,I4,t29,I1,t31,I1,t65,A3,t69,A3

jp@MDK:~/tmpfs ssh$
;-))
0
bulluk Messages postés 8 Statut Membre
 
J'ai donc tenté mais il me dit:
L'étiquette /(/... \1/p comporte plus de huit caractères.

Cà vient de ma version de SED (je suis en UNIX AIX)?

Merci encore.
0
jipicy Messages postés 41342 Statut Modérateur 4 896 > bulluk Messages postés 8 Statut Membre
 
Essaye avec ça :
sed ':z;N;$! bz;s/\n//g;s/.*(//;s/).*//' fic
Sans conviction, même si chez moi le résultat est similaire à la 1ère syntaxe.
0
bulluk Messages postés 8 Statut Membre > jipicy Messages postés 41342 Statut Modérateur
 
çà donne la même chose. Cà doit venir de la version de SED que l'on a sur notre système. Je me renseigne.
0
bulluk Messages postés 8 Statut Membre
 
Je comprends maintenant pourquoi je n'y arrivais pas tout seul en bricolant SED. Merci Jipicy... je tente la formule magique.
0