Je fais parfois des petits scripts utilitaires pour effectuer des travaux
trop longs à faire à la main...
Mais quand il s'agit de manipuler des fichiers dont les noms comprennent
des espaces, ça coince. Par exemple :
for file in *.mp3
do mp3gain -r $file
done
... ne marche pas car $file ne contient pas le nom complet du fichier, mais
seulement le début jusqu'au premier espace. Le fichier est donc
inaccessible pour le processus invoqué...
Vous allez me dire qu'il serait préférable de remplacer les espaces par
des sous-lignes (_), mais il faudrait que j'écrive un script pour faire ça
sur tous mes fichiers. ;-)
Bon, je l'ai envisagé mais c'est le plan B.
Pour le plan A, je préférerais une autre solution si vous en avez une à
me proposer...
Je fais parfois des petits scripts utilitaires pour effectuer des travaux trop longs à faire à la main...
Mais quand il s'agit de manipuler des fichiers dont les noms comprennent des espaces, ça coince. Par exemple :
for file in *.mp3 do mp3gain -r $file done
... ne marche pas car $file ne contient pas le nom complet du fichier, mais seulement le début jusqu'au premier espace. Le fichier est donc inaccessible pour le processus invoqué...
Vous allez me dire qu'il serait préférable de remplacer les espaces par des sous-lignes (_), mais il faudrait que j'écrive un script pour faire ça sur tous mes fichiers. ;-) Bon, je l'ai envisagé mais c'est le plan B.
Pour le plan A, je préférerais une autre solution si vous en avez une à me proposer...
Merci.
salut
test avec do mp3gain -r "$file"
ça devrait marcher
seb
On 2007-04-14, Bruno <x@xxxxxx.fr> wrote:
Bonjour à tous,
Je fais parfois des petits scripts utilitaires pour effectuer des travaux
trop longs à faire à la main...
Mais quand il s'agit de manipuler des fichiers dont les noms comprennent
des espaces, ça coince. Par exemple :
for file in *.mp3
do mp3gain -r $file
done
... ne marche pas car $file ne contient pas le nom complet du fichier, mais
seulement le début jusqu'au premier espace. Le fichier est donc
inaccessible pour le processus invoqué...
Vous allez me dire qu'il serait préférable de remplacer les espaces par
des sous-lignes (_), mais il faudrait que j'écrive un script pour faire ça
sur tous mes fichiers. ;-)
Bon, je l'ai envisagé mais c'est le plan B.
Pour le plan A, je préférerais une autre solution si vous en avez une à
me proposer...
Je fais parfois des petits scripts utilitaires pour effectuer des travaux trop longs à faire à la main...
Mais quand il s'agit de manipuler des fichiers dont les noms comprennent des espaces, ça coince. Par exemple :
for file in *.mp3 do mp3gain -r $file done
... ne marche pas car $file ne contient pas le nom complet du fichier, mais seulement le début jusqu'au premier espace. Le fichier est donc inaccessible pour le processus invoqué...
Vous allez me dire qu'il serait préférable de remplacer les espaces par des sous-lignes (_), mais il faudrait que j'écrive un script pour faire ça sur tous mes fichiers. ;-) Bon, je l'ai envisagé mais c'est le plan B.
Pour le plan A, je préférerais une autre solution si vous en avez une à me proposer...
Merci.
salut
test avec do mp3gain -r "$file"
ça devrait marcher
seb
Nicolas George
Bruno wrote in message <46211ed7$0$27411$:
for file in *.mp3 do mp3gain -r $file done
... ne marche pas car $file ne contient pas le nom complet du fichier, mais seulement le début jusqu'au premier espace. Le fichier est donc inaccessible pour le processus invoqué...
Comme on te l'a dit, il faudrait écrire "$file", et c'est vrai partout, sauf si tu sais exactement ce que tu fais.
Vous allez me dire qu'il serait préférable de remplacer les espaces par des sous-lignes (_)
Ce serait préférable de toutes façons.
Bruno wrote in message <46211ed7$0$27411$ba4acef3@news.orange.fr>:
for file in *.mp3
do mp3gain -r $file
done
... ne marche pas car $file ne contient pas le nom complet du fichier, mais
seulement le début jusqu'au premier espace. Le fichier est donc
inaccessible pour le processus invoqué...
Comme on te l'a dit, il faudrait écrire "$file", et c'est vrai partout, sauf
si tu sais exactement ce que tu fais.
Vous allez me dire qu'il serait préférable de remplacer les espaces par
des sous-lignes (_)
... ne marche pas car $file ne contient pas le nom complet du fichier, mais seulement le début jusqu'au premier espace. Le fichier est donc inaccessible pour le processus invoqué...
Comme on te l'a dit, il faudrait écrire "$file", et c'est vrai partout, sauf si tu sais exactement ce que tu fais.
Vous allez me dire qu'il serait préférable de remplacer les espaces par des sous-lignes (_)
Ce serait préférable de toutes façons.
Bruno
Sebastien Doucet wrote:
salut
Salut.
test avec do mp3gain -r "$file"
ça devrait marcher
seb
Non, malheureusement, le résultat est le même.
Pour un fichier style : "Nom avec des espaces.mp3", le script sort : can't open Nom can't open avec can't open des can't open espaces.mp3
Et si je saisis dans la console : mp3gain Nom puis que je presse [tab], j'obtiens : mp3gain Nom avec des espaces.mp3
Des espaces dans les noms des fichiers, c'est pas bô...
Sebastien Doucet wrote:
salut
Salut.
test avec
do mp3gain -r "$file"
ça devrait marcher
seb
Non, malheureusement, le résultat est le même.
Pour un fichier style : "Nom avec des espaces.mp3", le script sort :
can't open Nom
can't open avec
can't open des
can't open espaces.mp3
Et si je saisis dans la console : mp3gain Nom
puis que je presse [tab], j'obtiens : mp3gain Nom avec des espaces.mp3
Des espaces dans les noms des fichiers, c'est pas bô...
Pour un fichier style : "Nom avec des espaces.mp3", le script sort : can't open Nom can't open avec can't open des can't open espaces.mp3
Euh, ça serait pas ton programme « mp3gain » qui serait lui aussi un script qui oublie de quoter?
Bruno
Luc Habert wrote:
Euh, ça serait pas ton programme « mp3gain » qui serait lui aussi un script qui oublie de quoter?
Non, non. Quel que soit le programme invoqué de cette façon, le problème est le même. C'est le bash, apparemment, qui n'aime pas les espaces dans les noms...
Mais de toutes façons : Les espaces dans les noms de fichiers, c'est pas bô.
Je sais pas pourquoi, mais c'est comme ça. Pourtant, ce n'est qu'un caractère comme un autre... Les raisons du problème sont peut-être historiques...
Voilà un sujet de digression intéressant.
Luc Habert wrote:
Euh, ça serait pas ton programme « mp3gain » qui serait lui aussi un
script qui oublie de quoter?
Non, non. Quel que soit le programme invoqué de cette façon, le problème
est le même. C'est le bash, apparemment, qui n'aime pas les espaces dans
les noms...
Mais de toutes façons :
Les espaces dans les noms de fichiers, c'est pas bô.
Je sais pas pourquoi, mais c'est comme ça. Pourtant, ce n'est qu'un
caractère comme un autre... Les raisons du problème sont peut-être
historiques...
Euh, ça serait pas ton programme « mp3gain » qui serait lui aussi un script qui oublie de quoter?
Non, non. Quel que soit le programme invoqué de cette façon, le problème est le même. C'est le bash, apparemment, qui n'aime pas les espaces dans les noms...
Mais de toutes façons : Les espaces dans les noms de fichiers, c'est pas bô.
Je sais pas pourquoi, mais c'est comme ça. Pourtant, ce n'est qu'un caractère comme un autre... Les raisons du problème sont peut-être historiques...
Voilà un sujet de digression intéressant.
Nicolas George
Bruno wrote in message <46212ee9$0$27407$:
Non, non. Quel que soit le programme invoqué de cette façon, le problème est le même. C'est le bash, apparemment, qui n'aime pas les espaces dans les noms...
C'est faux. Le problème est de ton côté.
Bruno wrote in message <46212ee9$0$27407$ba4acef3@news.orange.fr>:
Non, non. Quel que soit le programme invoqué de cette façon, le problème
est le même. C'est le bash, apparemment, qui n'aime pas les espaces dans
les noms...
Non, non. Quel que soit le programme invoqué de cette façon, le problème est le même. C'est le bash, apparemment, qui n'aime pas les espaces dans les noms...
C'est faux. Le problème est de ton côté.
Stéphan Peccini
Sebastien Doucet wrote:
test avec do mp3gain -r "$file"
ça devrait marcher
seb
Non, malheureusement, le résultat est le même.
Et pourtant :
En bourne shell
sh-3.1$ for i in *; do cat $i; done cat: Essai: Aucun fichier ou répertoire de ce type cat: de: Aucun fichier ou répertoire de ce type cat: fichier: Aucun fichier ou répertoire de ce type
sh-3.1$ for i in *; do cat "$i"; done sh-3.1$
et en bash
[ Essai]$ for i in *; do cat $i; done cat: Essai: Aucun fichier ou répertoire de ce type cat: de: Aucun fichier ou répertoire de ce type cat: fichier: Aucun fichier ou répertoire de ce type
[ Essai]$ for i in *; do cat "$i"; done [ Essai]$
[ Essai]$ ls -l total 0 -rw-rw-r-- 1 spc spc 0 avr 14 21:58 Essai de fichier -rw-rw-r-- 1 spc spc 0 avr 14 21:58 toto
-- Stéphan Peccini <URL:http://photonature.fr>
Sebastien Doucet wrote:
test avec
do mp3gain -r "$file"
ça devrait marcher
seb
Non, malheureusement, le résultat est le même.
Et pourtant :
En bourne shell
sh-3.1$ for i in *; do cat $i; done
cat: Essai: Aucun fichier ou répertoire de ce type
cat: de: Aucun fichier ou répertoire de ce type
cat: fichier: Aucun fichier ou répertoire de ce type
sh-3.1$ for i in *; do cat "$i"; done
sh-3.1$
et en bash
[spc@tesenca Essai]$ for i in *; do cat $i; done
cat: Essai: Aucun fichier ou répertoire de ce type
cat: de: Aucun fichier ou répertoire de ce type
cat: fichier: Aucun fichier ou répertoire de ce type
[spc@tesenca Essai]$ for i in *; do cat "$i"; done
[spc@tesenca Essai]$
[spc@tesenca Essai]$ ls -l
total 0
-rw-rw-r-- 1 spc spc 0 avr 14 21:58 Essai de fichier
-rw-rw-r-- 1 spc spc 0 avr 14 21:58 toto
sh-3.1$ for i in *; do cat $i; done cat: Essai: Aucun fichier ou répertoire de ce type cat: de: Aucun fichier ou répertoire de ce type cat: fichier: Aucun fichier ou répertoire de ce type
sh-3.1$ for i in *; do cat "$i"; done sh-3.1$
et en bash
[ Essai]$ for i in *; do cat $i; done cat: Essai: Aucun fichier ou répertoire de ce type cat: de: Aucun fichier ou répertoire de ce type cat: fichier: Aucun fichier ou répertoire de ce type
[ Essai]$ for i in *; do cat "$i"; done [ Essai]$
[ Essai]$ ls -l total 0 -rw-rw-r-- 1 spc spc 0 avr 14 21:58 Essai de fichier -rw-rw-r-- 1 spc spc 0 avr 14 21:58 toto
-- Stéphan Peccini <URL:http://photonature.fr>
Bruno
Nicolas George wrote:
C'est le bash, apparemment, qui n'aime pas les espaces dans les noms...
C'est faux. Le problème est de ton côté.
C'est résolvable alors, bonne nouvelle.
Comment expliques-tu que sous batch, le fichier "Nom avec des espaces.mp3" soit : "Nom avec des espaces.mp3" ?
Un problème de config ?
Nicolas George wrote:
C'est le bash, apparemment, qui n'aime pas les espaces
dans les noms...
C'est faux. Le problème est de ton côté.
C'est résolvable alors, bonne nouvelle.
Comment expliques-tu que sous batch, le fichier "Nom avec des espaces.mp3"
soit : "Nom avec des espaces.mp3" ?
Désolé de vous avoir pris la tête, vous aviez raison. Ça marche.
Je ne sais pas ce qui s'est passé, j'ai dû merder quelque part lors de l'essai...
Toutes mes plus plates excuses.
Je m'en vais changer de pseudo, de nom, de tête...
Et merci de votre patience.
Th.A.C
Comment expliques-tu que sous batch, le fichier "Nom avec des espaces.mp3" soit : "Nom avec des espaces.mp3" ?
Un problème de config ?
Heu, c'est tout a fait normal. Le shell bash (quand on appuye sur TAB) affiche un nom de fichier entier et fait précéder chaque caractère pouvant être interprété autrement par un . Comme le shell ne vérifie pas si tu as tapé des guillemets ou des apostrophes, il met systématiquement les . Ca peut permettre par exemple d'utiliser des noms de fichiers contenant les caractères spéciaux comme * ? / (et les autres).
Pour éviter les problèmes avec ces caractères spéciaux, il vaut mieux utiliser l'apostrophe, le guillemet n'empêche pas le shell bash d'interpréter certains caractères dans une chaine: http://abs.traduc.org/abs-4.2.01-fr/ch05.html
il faudrait quand même vérifier si le programme mp3gain prend bien les noms avec des espaces comme un seul argument s'il y a des guillemets ou des apostrophes en tapant la commande 'à la mimine': mp3gain 'nom de fichier.mp3' ou mp3gain "nom de fichier.mp3"
Comment expliques-tu que sous batch, le fichier "Nom avec des espaces.mp3"
soit : "Nom avec des espaces.mp3" ?
Un problème de config ?
Heu, c'est tout a fait normal.
Le shell bash (quand on appuye sur TAB) affiche un nom de fichier entier
et fait précéder chaque caractère pouvant être interprété autrement par
un . Comme le shell ne vérifie pas si tu as tapé des guillemets ou des
apostrophes, il met systématiquement les .
Ca peut permettre par exemple d'utiliser des noms de fichiers contenant
les caractères spéciaux comme * ? / (et les autres).
Pour éviter les problèmes avec ces caractères spéciaux, il vaut mieux
utiliser l'apostrophe, le guillemet n'empêche pas le shell bash
d'interpréter certains caractères dans une chaine:
http://abs.traduc.org/abs-4.2.01-fr/ch05.html
il faudrait quand même vérifier si le programme mp3gain prend bien les
noms avec des espaces comme un seul argument s'il y a des guillemets ou
des apostrophes en tapant la commande 'à la mimine':
mp3gain 'nom de fichier.mp3'
ou
mp3gain "nom de fichier.mp3"
Comment expliques-tu que sous batch, le fichier "Nom avec des espaces.mp3" soit : "Nom avec des espaces.mp3" ?
Un problème de config ?
Heu, c'est tout a fait normal. Le shell bash (quand on appuye sur TAB) affiche un nom de fichier entier et fait précéder chaque caractère pouvant être interprété autrement par un . Comme le shell ne vérifie pas si tu as tapé des guillemets ou des apostrophes, il met systématiquement les . Ca peut permettre par exemple d'utiliser des noms de fichiers contenant les caractères spéciaux comme * ? / (et les autres).
Pour éviter les problèmes avec ces caractères spéciaux, il vaut mieux utiliser l'apostrophe, le guillemet n'empêche pas le shell bash d'interpréter certains caractères dans une chaine: http://abs.traduc.org/abs-4.2.01-fr/ch05.html
il faudrait quand même vérifier si le programme mp3gain prend bien les noms avec des espaces comme un seul argument s'il y a des guillemets ou des apostrophes en tapant la commande 'à la mimine': mp3gain 'nom de fichier.mp3' ou mp3gain "nom de fichier.mp3"