prob a la con [bash] - Linux et OS Alternatifs
Marsh Posté le 25-11-2003 à 18:01:58
teubé !!!!
for f in $(find -name "*.ogg" ); do
mv $f $(echo $f | sed s/ogg$/mp3/g)
done;
Marsh Posté le 25-11-2003 à 18:04:30
man rename
EDIT : la sol de taz est plus complète
Marsh Posté le 25-11-2003 à 18:04:32
voire même
for f in $(find -name "*.ogg" ); do mv -v $f ${f/ogg/mp3/}; done
puisque que ${} fait la substituion
ou presque
en tout cas la première fonctionne
Marsh Posté le 25-11-2003 à 18:10:21
Je te conseille d'installer mmv.
C'est un petit utilitaire très pratique qui fait ça.
Pour la solution de Taz, rajoutes qq guillemets, tu pourrais avoir des surprises sans cela.
En bash pur, tu as aussi :
Code :
|
Avec mmv :
Code :
|
Marsh Posté le 25-11-2003 à 18:11:58
cool. mais ma solution avec find fonctionne
je connaissais pas mmv, j'ai essayé avec mv et formant des groupes mais ça ne marche pas. mmv fonctionne bien
Marsh Posté le 26-11-2003 à 01:26:48
Taz a écrit : cool. mais ma solution avec find fonctionne |
Pas d'avantage, il manque toujours les guillemets. Si un nom de fichier contient des espaces ça bug.
Marsh Posté le 26-11-2003 à 01:43:16
ah oui c'est vrai j'ai oublié ce détail. pour régler ça avec find, il faut lui passer -fprint0 et récupérer avec xargs --null et là le problème est réglé
Marsh Posté le 26-11-2003 à 14:06:42
Taz a écrit : ah oui c'est vrai j'ai oublié ce détail. pour régler ça avec find, il faut lui passer -fprint0 et récupérer avec xargs --null et là le problème est réglé |
Tu pourrais l'écrire complètement SVP ? Jamais réussi à le faire correctement sans échapper à la main tous les \,"()[] et consorts
Code :
|
je mets quoi dans les "..." ?
Marsh Posté le 26-11-2003 à 14:46:26
et bien la commande !
man find
man xargs
-fprint0 fait que chaque chemin de fichier est une chaine terminée par un 0 terminal
--null dit à xargs de considérer qu'une chaine setermine par un 0, donc il ne s'arrete plus à un caracètre d'espacement
Marsh Posté le 26-11-2003 à 14:56:14
Ca j'ai bien compris merci. Ma question est toujours: "que mets-tu dans les ... ?"
Dans ta ligne de commande qui commencera par "mv", tu auras besoin deux fois du fichier en question.
Moi jusqu'à présent je faisais un petit fichier auxiliaire débile
Code :
|
appelé "rn" et ensuite
Code :
|
Ma question est donc: comment fait-on pour éviter cette usine à gaz de fichier "rn" et de " | sh" ?
[/code]
Marsh Posté le 26-11-2003 à 14:57:39
NB: Ca marcherait aussi avec un find --exec si du moins on pouvait faire du pattern-replacement dans la commande passée à --exec.
Mais pas réussi pour le moment.
Marsh Posté le 26-11-2003 à 15:09:26
deux minutes de man plus tard :
Code :
|
Marsh Posté le 26-11-2003 à 15:36:35
Merci. OK, le rename évite d'avoir à passer le nom du fichier en double.
Mais si tu veux faire autre chose qu'un simple rename (un convert par exemple, bref ce que tu veux qui a besoin de deux noms de fichier), comment faire sans passer par un script intermédiaire et un pipe sh ?
EDIT: avec awk '{ print "ma command qui va bien \"" $1 "\" \"" $1 "\""}' ?
Marsh Posté le 26-11-2003 à 15:38:23
ArSuniK a écrit : deux minutes de man plus tard : |
Marsh Posté le 25-11-2003 à 17:45:22
j ai un prob tres con j ai installé grip et lame
j ai voulu encodé mes cd en ogg, j ai regardé ce que proposé grip par default l'extention est .ogg dc je me dis pas de prob ca va encodé en ogg
j écoute mes .ogg ac rhutmbox mise a jours de ma debian et il les lis plus
il affige not a vorbis file !
je verifie ac file et c'est des mp3 et non du ogg
j ai quelque Go ed ogg a renomé en .mp3
dc si qq un avais une solution simple ca m'interesserai
merci
note à taz non rm -rf /* ne va pas pas arranger le prob