Bonjour tout le monde,
Mon problème est assez simple, et j'ignore si on peut le faire avec sed (je dirais oui...).
J'ai des fichiers en C qui contiennent des structures.
Elles sont toujours définies ainsi :
Et le ... varie, ainsi que le contenu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 typedef struct { unsigned char a[1234]; } t_buffer_...
L'idée est la suivante : extraire ce qui est entre les accolades à condition que le texte devant l'accolade ouvrante soit "typdef struct" et celui après l'accolade fermante "[ ]t_buffer_.*".
Si je mets sur une seule ligne, ça marche bien :
Si je le fais avec plusieurs lignes, l'ensemble du fichier s'affiche...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $>echo "typedef struct { t_buff[1234]; } t_buffer;" | sed 's/typedef struct {\(.*\)} t_buffer.*/aaa\1aaa/' aaa t_buff[1234]; aaa
Il me manque un truc, mais quoi... ?
Je précise que je suis sur une machine qui n'a pas beaucoup d'outils (pas de python, seulement les outils unix de base : sed, awk, lex, yacc, etc.).
Merci d'avance !
JM
Partager