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

Re: [HS] sed : garder le motif



Bonjour,

steve a écrit :
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 ?

a priori awk ou perl aussi mais let's try with sed

J'ai essayé (entre autres)
sed -e 's/^[A-Z][A-Z][A-Z]//' input_file

et ça me sort (fort logiquement d'ailleurs) les caractères de rang 4 et
plus, donc exactement le contraire de ce que je veux.

Comment lui dire de ne m'afficher *que* le motif cherché ?

La formule que j'écrirais est plutôt de la forme :
sed -e 's/^\(...\).*$/\1/' input_file


Les 3 premiers '.' (n'importe quel caractère) peuvent être remplacés chacun par un [A-Z] si besoin (n'importe quelle lettre de A à Z). Le dernier '.' suivi de '*' correspondent à n'importe quelle suite de caractères jusqu'à la fin. Les parenthèses sont là pour grouper les 3 premiers caractères. On les réécrit avec le \1.

Testé approuvé ;-)

Yannick.


Reply to: