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 04/09/2008, à 17:44

malmsteve

problème de fichiers avec des espaces dans script shell [RESOLU]

Bonjour,

je voudrai convertir des fichiers en mp3 de tous les sous répertoires d'un dossier.
Problème : les fichiers avec des espaces ne rentrent pas dans une variable.....
Et du coup avec le script en exemple ci dessous la variable fic prend les différents morceaux de nom de fichiers compris entre les espaces

for fic in `find /root -name '*.wma' -type f` ; do
       echo $fic
done

Quelqu'un aurait-il une idee genialissime pour résoudre ce problème???

Dernière modification par malmsteve (Le 04/09/2008, à 19:24)

Hors ligne

#2 Le 04/09/2008, à 19:07

Totor

Re : problème de fichiers avec des espaces dans script shell [RESOLU]

Ce problème d'espace est fréquemment soulevé :

find /root -name '*.wma' -a -type f|while read fic
do
       echo "${fic}"
done

NB : ce n'et pas une bonne idée d'utiliser le user root


-- Lucid Lynx --

Hors ligne

#3 Le 04/09/2008, à 19:08

sebk

Re : problème de fichiers avec des espaces dans script shell [RESOLU]

Bonjour,

Tu peux essayer ça...

#!/bin/bash
find /root -name '*.wma' -type f > /tmp/titi
while read fic
do
       echo "$fic"
done < /tmp/titi
rm /tmp/titi

Le while read lit le fichier ligne par ligne et pas mot par mot comme le for... in...


Iceberg Project : www.iceberg-linux.net

Hors ligne

#4 Le 04/09/2008, à 19:10

sebk

Re : problème de fichiers avec des espaces dans script shell [RESOLU]

Totor a écrit :

Ce problème d'espace est fréquemment soulevé :

find /root -name '*.wma' -a -type f|while read fic
do
       echo "${fic}"
done

NB : ce n'et pas une bonne idée d'utiliser le user root

Tien... je ne savais pas qu'on pouvait fair un pipe while... je retiens


Iceberg Project : www.iceberg-linux.net

Hors ligne

#5 Le 04/09/2008, à 19:23

malmsteve

Re : problème de fichiers avec des espaces dans script shell [RESOLU]

Merci beaucoup pour vos réponses ca marche nickel!
je mets le sujet en résolu
bonne soiree a tous

Hors ligne

#6 Le 04/09/2008, à 20:40

Bigfoot77210

Re : problème de fichiers avec des espaces dans script shell [RESOLU]

Salut,

Tu peux utiliser la variable IFS (Internal Field Separator) du bash.
Ça définit le caractère utilisé par bash comme séparateur.

Par exemple mets
IFS=$'\n'
Bash n'utilisera que le saut de ligne comme séparateur. C'est très pratique.

Pour plus d'info regarde là:
http://chl.be/glmf/morningstar.tuxfamil … ticle.html


APU A10 7700K - Ubuntu 14.10

Hors ligne