OVH Cloud OVH Cloud

renommage en série sous bash

16 réponses
Avatar
chmod 777
Bonjour à tous

J'ai dans un script bash une variable $i de la forme: artiste_-_titre.ogg
Je veux obtenir une forme: titre.mp3

avec ${i#_-_} j'obtiens: titre.ogg
avec ${i%ogg}mp3 j'obtiens: artiste_-_titre.mp3

Je n'arrive pas à combiner les 2 sans passer par une variable intermédiaire
et je ne trouve pas de solution dans les docs que j'ai sur bash.

Quelqu'un aurait une idée?


Lionel


PS: on m'a offert un autoradio mp3 qui ne lit pas les ogg (d'ou le besoin de
conversion) et dont l'affichage est limité à 32 caractères (d'où le besoin
de raccourcir les noms de fichiers).

6 réponses

1 2
Avatar
Raphaël 'SurcouF' Bordet
Raphaël 'SurcouF' Bordet wrote:

Il existe normalement une commande miraculeuse nommée "rename" qui
permet justement, via une regexp bien sentie, de faire des lots de
changements de noms...

$ replace 's/([a-z]+)_-_([a-z]+).ogg/$2.mp3/' *.mp3
(par exemple, je crois)



PS: sous debian, cette commande est fournie avec le paquet perl.
Sous RedHat, on obtient une autre commande...

--
Raphaël 'SurcouF' Bordet
http://debianfr.net/ | surcouf at debianfr dot net

Avatar
Raphaël 'SurcouF' Bordet
Raphaël 'SurcouF' Bordet wrote:

$ replace 's/([a-z]+)_-_([a-z]+).ogg/$2.mp3/' *.mp3
(par exemple, je crois)


Les plus réveillés auront évidemment remplacé 'replace' par 'rename' ;-)
(Mais où est passé le réparateur de la machine à café, bordel ?)

--
Raphaël 'SurcouF' Bordet
http://debianfr.net/ | surcouf at debianfr dot net

Avatar
Stephane Chazelas
2004-10-22, 09:52(+02), Raphaël 'SurcouF' Bordet:
Raphaël 'SurcouF' Bordet wrote:

$ replace 's/([a-z]+)_-_([a-z]+).ogg/$2.mp3/' *.mp3
(par exemple, je crois)


Les plus réveillés auront évidemment remplacé 'replace' par 'rename' ;-)
(Mais où est passé le réparateur de la machine à café, bordel ?)


Les plus /éveillés/ auront par contre remplacé (ou renommé)
"replace" _et_ "rename" par zmv:

zmv '*_-_(*).ogg' '$1.mp3'

(zmv est une fonction de zsh4+).

--
Stephane


Avatar
Raphaël 'SurcouF' Bordet
Stephane Chazelas wrote:

Les plus /éveillés/ auront par contre remplacé (ou renommé)
"replace" _et_ "rename" par zmv:

zmv '*_-_(*).ogg' '$1.mp3'

(zmv est une fonction de zsh4+).


Encore faut-il avoir installé zsh, hein ;-)

--
Raphaël 'SurcouF' Bordet
http://debianfr.net/ | surcouf at debianfr dot net

Avatar
Nicolas George
Stephane Chazelas wrote:
zmv '*_-_(*).ogg' '$1.mp3'
(zmv est une fonction de zsh4+).



Rah, je ne savais même pas que j'avais ça. Grassouille, merci du
renseignement !

Raphaël 'SurcouF' Bordet
wrote in message <claq52$1sot$:
Encore faut-il avoir installé zsh, hein ;-)


Il _faut_ avoir installé zsh.


Avatar
chmod 777
Raphaël 'SurcouF' Bordet wrote:

Raphaël 'SurcouF' Bordet wrote:

$ replace 's/([a-z]+)_-_([a-z]+).ogg/$2.mp3/' *.mp3
(par exemple, je crois)


Les plus réveillés auront évidemment remplacé 'replace' par 'rename' ;-)
(Mais où est passé le réparateur de la machine à café, bordel ?)



Je m'en vais l'essayer de cepas..

Merci beaucoup!

Lionel


1 2