Effectivement, awk/sed sont les outils qu'on va assez vite dégainer pour traiter des flux de texte. Je suis tombé l'option -o de grep il y a peu de temps. Elle n'est pas portable mais si tu es sous Linux, ça serait dommage de se priver.
Ensuite, yapuka (c) enlever les petits morceaux qui traînent avec l'outil de ton choix. Par exemple en pipant dans un sed du genre (...) | sed -e 's/to=<\(.*\)>/1円/'
En sed pur, on peut aussi faire des trucs, mais c'est un peu moins lisible, et la solution que j'ai ne peut traiter qu'une seul adresse par ligne (ce qui à priori n'est pas trop grave pour ton cas mais bon :) sed -ne '/to=</,/>/ s/.*to=<\(.*\)>.*/1円/p' fichier
# sed, grep, awk
Posté par gaaaaaAab . En réponse au message Afficher un champ précis depuis un log. Évalué à 3.
$ echo "blablabla to=<addr1@machin.truc> bliblibli to=<addr2@truc.bidule>" > fichier
$ grep -o "to=<\([^>]*\)>" fichier
to=<addr1@machin.truc>
to=<addr2@truc.bidule>
Ensuite, yapuka (c) enlever les petits morceaux qui traînent avec l'outil de ton choix. Par exemple en pipant dans un sed du genre
(...) | sed -e 's/to=<\(.*\)>/1円/'
En sed pur, on peut aussi faire des trucs, mais c'est un peu moins lisible, et la solution que j'ai ne peut traiter qu'une seul adresse par ligne (ce qui à priori n'est pas trop grave pour ton cas mais bon :)
sed -ne '/to=</,/>/ s/.*to=<\(.*\)>.*/1円/p' fichierpour en savoir plus sur sed:
http://www.commentcamarche.net/faq/478-sed
http://www.grymoire.com/Unix/Sed.html