#1 Le 08/06/2009, à 16:08
- mbouvet
[Script bash] liste de fichiers contenant des blancs - RESOLU
Bonjour,
J'ai écrits des petits scripts de traitements vidéo pour me faciliter la vie, ces scripts fonctionnent bien mais je voudrais les encapsuler dans un script de plus haut niveau pour effectuer un traitement sur l'ensemble des fichiers avi d'un répertoire. J'ai essayer une syntaxe à base de
i=0
for bidule in `ls`
do
fichier[$i]=$bidule
//ici appeler mon script avec ${fichier[i]} en argument
((i++))
done
Cela fonctionne si les fichiers ne contiennent pas le caractère blanc ' ' . Malheureusement beaucoup de mes *.avi possèdent des blancs. Comment faire sans renommer les fichiers ? j'ai trouvé un script à base de sed qui renomme les blancs en _ mais le problème reste identique pour généraliser le traitement à l'ensemble d'un répertoire ... Je précise que le pb ne vient pas des scripts appelés (c'est bien géré a ce niveau) mais du 'for bidule in `ls`' qui split avec les blancs..
Une idée ?
Merci
Dernière modification par mbouvet (Le 08/06/2009, à 22:14)
Ubuntu 11.04 64bits / Q8400,4Gio / SSD Vertex 2 / 8600GTS - LCD22"+ TV Sony KDL-37V4710
Hors ligne
#2 Le 08/06/2009, à 16:16
- gilbert
Re : [Script bash] liste de fichiers contenant des blancs - RESOLU
salut,
tu peux modifier la variable IFS.
save=$IFS;
IFS=$'\t\n' # on ne choisit que le passage à la ligne et les tabulations comme séparateur
fichier[$i]=$bidule;
mais si j'étais toi je ré-écriais le code comme cela :
declare -a fichier #fichier est un tableau
save=$IFS;
IFS=$'\t\n'
fichier=($(ls))
for(( i=0; i<${#fichier[*]}; i++ )); do
//ici appeler ton script avec ${fichier[i]} en argument
done
IFS=$save
Dernière modification par gilbert (Le 08/06/2009, à 16:25)
Simplement moi-même..
Hors ligne
#3 Le 08/06/2009, à 16:25
- Totor
Re : [Script bash] liste de fichiers contenant des blancs - RESOLU
Ou tout simplement :
#!/bin/bash
fichier=( * )
et si tu ne souhaites que les avi :
#!/bin/bash
fichier=( *.avi )
EDIT : gilbert ... pourquoi utiliser ls
-- Lucid Lynx --
Hors ligne
#4 Le 08/06/2009, à 16:26
- gilbert
Re : [Script bash] liste de fichiers contenant des blancs - RESOLU
EDIT : gilbert ... pourquoi utiliser ls
Parce que j'ai simplement repris son code
Simplement moi-même..
Hors ligne
#5 Le 08/06/2009, à 16:26
- mbouvet
Re : [Script bash] liste de fichiers contenant des blancs - RESOLU
Merci, Je teste ce soir (la je suis au taf).
Ubuntu 11.04 64bits / Q8400,4Gio / SSD Vertex 2 / 8600GTS - LCD22"+ TV Sony KDL-37V4710
Hors ligne
#6 Le 08/06/2009, à 22:13
- mbouvet
Re : [Script bash] liste de fichiers contenant des blancs - RESOLU
mais si j'étais toi je ré-écriais le code comme cela :
declare -a fichier #fichier est un tableau save=$IFS; IFS=$'\t\n' fichier=($(ls)) for(( i=0; i<${#fichier[*]}; i++ )); do //ici appeler ton script avec ${fichier[i]} en argument done IFS=$save
J'ai pris cette option, ça marche nickel !
Merci pour le tuyau
Ubuntu 11.04 64bits / Q8400,4Gio / SSD Vertex 2 / 8600GTS - LCD22"+ TV Sony KDL-37V4710
Hors ligne