#26 Le 26/03/2014, à 11:25
- tiramiseb
Re : Renommer des fichiers en conservant le premier nombre et l'extension.
Si la commajnde "rename" de credenhill (toujours utile, cette commande) ne fonctionne pas, simplifions la commande sed, que donne la chose suivante ?
echo "blabla-toto tata 23 720. ac3.mp4" | sed 's/[^0-9]*\([0-9]\+\).*/\1/'
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#27 Le 26/03/2014, à 13:14
- Spike00
Re : Renommer des fichiers en conservant le premier nombre et l'extension.
hello
$ ls -1 bla.bla.bla toto tata 145 1080.torrent blabla-toto tata 23 720. ac3.mp4 $ rename -n 's/^([^0-9]*)( [0-9]*)(.*)(\.[a-z0-9]*$)/$2$4/' * bla.bla.bla toto tata 145 1080.torrent renamed as 145.torrent blabla-toto tata 23 720. ac3.mp4 renamed as 23.mp4
Salut,
touch "bla.bla.bla toto tata 145 1080.torrent"
touch "blabla-toto tata 23 720. ac3.mp4"
ls -1
Résultat :
bla.bla.bla toto tata 145 1080.torrent
blabla-toto tata 23 720. ac3.mp4
rename -n 's/^([^0-9]*)( [0-9]*)(.*)(\.[a-z0-9]*$)/$2$4/' *
Résultat :
-bash: rename: command not found
man rename
Résultat :
manuel
It's included as an alias in some Unix systems for PC users.
Actually in Leopard you can
man rename
and get a result
but, the command is not in the system (too many letters to type when mv will do )
Merci pour ton aide. Mais malheureusement cela ne fonctionne pas sur mac.
Dernière modification par Spike00 (Le 26/03/2014, à 13:35)
Hors ligne
#28 Le 26/03/2014, à 13:20
- Spike00
Re : Renommer des fichiers en conservant le premier nombre et l'extension.
Si la commande "rename" de credenhill (toujours utile, cette commande) ne fonctionne pas, simplifions la commande sed, que donne la chose suivante ?
echo "blabla-toto tata 23 720. ac3.mp4" | sed 's/[^0-9]*\([0-9]\+\).*/\1/'
echo "blabla-toto tata 23 720. ac3.mp4" | sed 's/[^0-9]*\([0-9]\+\).*/\1/'
Résultat :
blabla-toto tata 23 720. ac3.mp4
A vous tous Merci pour votre persévérance.
Hors ligne
#29 Le 26/03/2014, à 13:50
- credenhill
Re : Renommer des fichiers en conservant le premier nombre et l'extension.
$ echo "bla.bla.bla toto tata 145 1080.torrent" | sed -r 's/^([^0-9]*)([0-9]*)(.*)(\.[a-z0-9]*$)/\2\4/'
145.torrent
$ echo "blabla-toto tata 23 720. ac3.mp4" | sed -r 's/^([^0-9]*)([0-9]*)(.*)(\.[a-z0-9]*$)/\2\4/'
23.mp4
Hors ligne
#30 Le 26/03/2014, à 13:57
- tiramiseb
Re : Renommer des fichiers en conservant le premier nombre et l'extension.
Oui credenhill, on a bien compris que sur Ubuntu ça marche, ça on n'en doute pas.
Ce n'est pas en répétant des commandes quasiment identiques qu'on fera avancer le schmilblick sur l'OS X de Spike00
Simplifions encore plus... Spike00, tente la chose suivante :
echo "blabla-toto tata 23 720. ac3.mp4" | sed 's/^[^0-9]*//;s/ .*$//'
ça devrait retourner 23.
PS : en même temps, il ne fallait pas utiliser un sous-OS comme celui-ci hein
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#31 Le 26/03/2014, à 15:20
- credenhill
Re : Renommer des fichiers en conservant le premier nombre et l'extension.
tu n'as pas du comprendre que j'utilise la syntaxe du rename avec sed
Hors ligne
#32 Le 26/03/2014, à 15:31
- Spike00
Re : Renommer des fichiers en conservant le premier nombre et l'extension.
Simplifions encore plus... Spike00, tente la chose suivante :
echo "blabla-toto tata 23 720. ac3.mp4" | sed 's/^[^0-9]*//;s/ .*$//'
echo "blabla-toto tata 23 720. ac3.mp4" | sed 's/^[^0-9]*//;s/ .*$//'
ça devrait retourner 23.
Résultat :
23
!
En effet ; ça fonctionne!
Merci beaucoup tiramiseb.
sed 's/^[^0-9]*//;s/ .*$//'
Pourrais tu m'expliquer ton code?
PS : en même temps, il ne fallait pas utiliser un sous-OS comme celui-ci hein
os x ; n'est pas totalement parfait
Dernière modification par Spike00 (Le 26/03/2014, à 15:32)
Hors ligne
#33 Le 26/03/2014, à 15:36
- tiramiseb
Re : Renommer des fichiers en conservant le premier nombre et l'extension.
sed 's/^[^0-9]*//;s/ .*$//'
Pourrais tu m'expliquer ton code?
s/^[^0-9]*// => remplacer la chaîne qui commence par un début de ligne (^) et qui ne contient pas de chiffre par rien du tout
s/ .*$// => remplacer la chaîne qui commence par une espace, qui contient n'importe quoi et qui termine par une fin de ligne par rien du tout
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne