[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [HS] sed : garder le motif



steve a écrit :
Bonjour et pardon pour ce HS.

Tu peux essayer la liste shellscript pour ça ;-) (http://debianworld.org/shellscript-fr)

J'ai un long fichier de la forme

ABC(du texte)
MSD(un autre texte)
etc...

J'aimerai traiter ce fichier de tel manière qu'à la sortie je n'ai que
les 3 premiers caractères :

ABC
MSD
etc...

Sed devrait faire l'affaire non ?

Oui.
Pour ajouter à ce qu'on dit les autres, on peut utiliser l'option -r pour avoir les regex étendue et ne plus avoir besoin d'échapper les () et {}.

Ensuite, si tu veux ne pas afficher les lignes qui ne correspondent pas au pattern

$ echo 'ABCbla bla
DEFblabla
GhIblabla'|sed -rne 's/^([A-Z]{3}).*$/\1/p'
ABC
DEF

le -n, c'est pour ne pas afficher les lignes par défaut, d'où le besoin de préciser le p à la fin de l'expression (on décide un print explicite). Si tu veux la ligne qui ne correspond pas au pattern, c'est
$ echo 'ABCbla bla
DEFblabla
GhIblabla'|sed -re 's/^([A-Z]{3}).*$/\1/'
ABC
DEF
GhIblabla

--
Daniel


Reply to: