Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/08/2015, à 15:19

arieugon

[RESOLU] Traitement sur fichiers dont les noms contiennent des espaces

Bonjour à tous

Je cherche à réaliser des conversions de format de fichiers son de type m4a en mp3. Le problème que je rencontre est que je n'arrive pas à récupérer dans une variable ($file) le nom complet de chaque fichier, pour ensuite faire le traitement nécessaire sur chacun d'eux.

Admettons que la commande $ls -1 *.m4a me retourne :

fic - 1.m4a
fic - 2 m4a
...
fic - 45.m4a

Comme je veux traiter fichier par fichier je commence mon script par:

for file in $(ls -1 fic*);do
   echo file=$file # pour vérifier que ma variable contient bien le nom complet de chaque fichier
done

Le résultat est le suivant:

file=fic
file=-
file=1.m4a
file=fic
file=-
file=2.m4a

etc ...

J'ai essayé de mettre entre guillements mais à ce moment là j'obtients:

file=fic - 1.m4a fic - 2.m4a  ... fic - 45.m4a 

Donc comment obtenir :

file=fic - 1.m4a
file=fic - 2.m4a
...
file=fic - 45.m4a

Je pourrais alors faire le traitement fichier par fichier.

Merci pour vos réponses futures

Dernière modification par arieugon (Le 09/08/2015, à 15:47)


Portable ASUS K73E :  Ubuntu XFCE 20.04 / Ubuntu DDE 20.04 / Debian 10 /Debian 11 (testing) / Devuan 3
Le tout en multi-boot Grub Legacy.

Hors ligne

#2 Le 09/08/2015, à 15:29

pingouinux

Re : [RESOLU] Traitement sur fichiers dont les noms contiennent des espaces

Bonjour,

for file in *.m4a
do
   echo file="$file"
done

Hors ligne

#3 Le 09/08/2015, à 15:31

J5012

Re : [RESOLU] Traitement sur fichiers dont les noms contiennent des espaces

entre guillemets
c'est juste le resultat de la commande echo
à chaque boucle for, file ne contient bien qu'une valeur
si tu utilises l'une des fonctions print, le resultat est different ...

Hors ligne

#4 Le 09/08/2015, à 15:46

arieugon

Re : [RESOLU] Traitement sur fichiers dont les noms contiennent des espaces

Merci pingouinux

En fait ce qui ne convenait pas dans mon script se situe dans la première ligne:
for file in $(ls -1 *.m4a); do
au lieu de
for file in *.m4a; do

C'est ok, ça fonctionne. Je te remercie beaucoup.

Dernière modification par arieugon (Le 09/08/2015, à 15:53)


Portable ASUS K73E :  Ubuntu XFCE 20.04 / Ubuntu DDE 20.04 / Debian 10 /Debian 11 (testing) / Devuan 3
Le tout en multi-boot Grub Legacy.

Hors ligne