$ echo "xvidcore_1.1.0-final-0.0" | sed 's/-[0-9]\+\.\{0,1\}[0-9]\+$//
M300A
Je viens de voir ta réponse pillow
Merci :jap:
Je vais corriger ca :)
M300A
J'ai rien en echappant le . ca a l'air de fonctionner :p
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 !
Pillow
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]*$//'
xvidcore_1.1.0-final
M300A
gandalf@hellscream:/ripp/pbuilder/scripts$ echo "xvidcore_1.1.0-final-0.0" | sed 's/\-[0-9]*.*[0-9]*$//'
xvidcore_1.1.0
Alors que j'attend "xvidcore_1.1.0-final" comme retour :)
M300A
Ca n'a pas l'air, en tout cas pas sur cette exemple : xvidcore_1.1.0-final-0.0
Tomate
\. ça fonctionne pas ?
M300A
J'ai testé ca passe pas :(
Fork Bomb
Euh.... echapper le caratctere ? (j'Y connais rien en scripting, donc, je dis peut-etre une c*nnerie)
M300A
Seul le sed à besoin d'être compris et j'ai expliquer le motif que je cherche à supprimer ;)
bon, ben si tu es le seul a comprendre... on va pas chercher...
M300A
:hello:
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 :p).
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 :(