sed 's/\-[0-9]*.*[0-9]*$//' < à corriger... - Linux et OS Alternatifs
Marsh Posté le 11-03-2006 à 20:34:03
bon, ben si tu es le seul a comprendre... on va pas chercher...
Marsh Posté le 11-03-2006 à 20:37:01
Seul le sed à besoin d'être compris et j'ai expliquer le motif que je cherche à supprimer
Marsh Posté le 11-03-2006 à 20:38:53
Euh.... echapper le caratctere ? (j'Y connais rien en scripting, donc, je dis peut-etre une c*nnerie)
Marsh Posté le 11-03-2006 à 21:16:32
\. ça fonctionne pas ?
Marsh Posté le 11-03-2006 à 21:31:08
Ca n'a pas l'air, en tout cas pas sur cette exemple : xvidcore_1.1.0-final-0.0
Marsh Posté le 11-03-2006 à 21:32:18
gandalf@hellscream:/ripp/pbuilder/scripts$ echo "xvidcore_1.1.0-final-0.0" | sed 's/\-[0-9]*.*[0-9]*$//' |
Alors que j'attend "xvidcore_1.1.0-final" comme retour
Marsh Posté le 11-03-2006 à 21:35:58
Le - n'a pas besoin d'être échappé.
Le point doit être échappé si tu veux un point littéral.
"éventuellement un point", c'est {0,1}, et pas *.
$ echo "xvidcore_1.1.0-final-0.0" | sed 's/-[0-9]*\.\{0,1\}[0-9]*$//' |
Marsh Posté le 11-03-2006 à 21:36:40
J'ai rien en echappant le . ca a l'air de fonctionner
Par contre on doit comme pouvoir la rendre plus propre mon expression...
Y'a t'il des meta caractère qui exprime une seul fois, et une fois ou plus ? Parce que la je n'utilise que des *, ca me parait pas optimal !
Marsh Posté le 11-03-2006 à 21:37:24
Je viens de voir ta réponse pillow
Merci
Je vais corriger ca
Marsh Posté le 11-03-2006 à 21:41:41
"une fois ou plus" <=> "+" (qu'il faut échapper).
$ echo "xvidcore_1.1.0-final-0.0" | sed 's/-[0-9]\+\.\{0,1\}[0-9]\+$//
Marsh Posté le 11-03-2006 à 20:28:55
J'ai un petit probleme de regexp :
J'ai ecris cette ligne dans un script (ne cherchez pas à comprendre je suis le seul à savoir ce que ca fait ).
mv ${BASE_DIR}/results/${DISTRIBUTION}/`echo ${BASEPKGNAME} | sed 's/\-[0-9]*.*[0-9]*$//'`.orig.tar.gz ${BASE_DIR}/repo/${DISTRIB}/dists/${DISTRIBUTION}/main/source/
Le but de cette regexp est de supprimer un motif du genre tiret+nb_qqc_de_chiffres+_eventuellement_un_point+_eventuellement_un_nb_qqc_de_chiffres+fin de ligne
L'ennuie c'est que le . est interpreté comme "nimporte quel charactère" et je suis finalement tombé sur un cas qui plante ma regexp
Pourriez vous m'aider à la corriger ?
Merci d'avance
Message édité par M300A le 11-03-2006 à 20:29:20