Script Bash, prendre en considération l'espace dans les noms de fichier

2011-06-04 Par sujet Tahar BEN ACHOUR
Bonjour à tous,

J'ai un petit soucis avec un petit script j'ai un dossier dans lequel je 
voudrais extraire tous les fichiers qui s'y trouvent,

mon script est le suivant

for  myfile in $(ls)
do
rar e $myfile
done

le problème c'est que tous les fichiers sont nommés avec des espaces comme 
séparateur et le script considère chaque mot comme fichier à part ! Comment 
faire pour prendre en considération l'espace  dans le nom de fichier ?

Merci pour votre aide

par exemple si j'ai un fichier nommé mon fichier.rar en remplaçant rar e 
$myfile par echo $myfile j'ai le réslutat suivant

mon
fichier

une idée, pour éviter ce souci ?

Merci

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/935529.41665...@web26307.mail.ukl.yahoo.com



Re: Script Bash, prendre en considération l'espace dans les noms de fichier

2011-06-04 Par sujet Bernard Schoenacker
Le Sat, 4 Jun 2011 15:50:27 +0100 (BST),
Tahar BEN ACHOUR tahar...@yahoo.fr a écrit :

 Bonjour à tous,
 
 J'ai un petit soucis avec un petit script j'ai un dossier dans lequel
 je voudrais extraire tous les fichiers qui s'y trouvent,
 
 mon script est le suivant
 
 for  myfile in $(ls)
 do
 rar e $myfile
 done
 
 le problème c'est que tous les fichiers sont nommés avec des espaces
 comme séparateur et le script considère chaque mot comme fichier à
 part ! Comment faire pour prendre en considération l'espace  dans le
 nom de fichier ?
 
 Merci pour votre aide
 
 par exemple si j'ai un fichier nommé mon fichier.rar en remplaçant
 rar e $myfile par echo $myfile j'ai le réslutat suivant
 
 mon
 fichier
 
 une idée, pour éviter ce souci ?
 
 Merci
 

bonjour,


pour ton souchi :

man detox
man rename

mode opératoire :

detox -u utf_8 *
rename 'y/A-Z/a-z/' *

autrement c'est pas rar mais unrar 

slt
bernard



--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: 
http://lists.debian.org/20110604170006.1aaa47bd.bernard.schoenac...@free.fr



Re: Script Bash, prendre en considération l'espace dans les noms de fichier

2011-06-04 Par sujet Pascal Le Bris

On 04/06/2011 16:50, Tahar BEN ACHOUR wrote:

Bonjour à tous,

J'ai un petit soucis avec un petit script j'ai un dossier dans lequel je
voudrais extraire tous les fichiers qui s'y trouvent,

mon script est le suivant

for  myfile in $(ls)
do
rar e $myfile
done

le problème c'est que tous les fichiers sont nommés avec des espaces comme
séparateur et le script considère chaque mot comme fichier à part ! Comment
faire pour prendre en considération l'espace  dans le nom de fichier ?

Merci pour votre aide

par exemple si j'ai un fichier nommé mon fichier.rar en remplaçant rar e
$myfile par echo $myfile j'ai le réslutat suivant

mon
fichier

une idée, pour éviter ce souci ?

Merci

   

Bonjour,

   double quotes sur le nom de fichier :
${myfile}

/usr/bin/rar a  A\ B.rar  /etc/passwd
for myfile in *.rar; do /usr/bin/rar e ${myfile}; done

A+

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/4dea4dd0.9050...@shom.fr



Re: Script Bash, prendre en considération l'espace dans les noms de fichier

2011-06-04 Par sujet Иван
On sam. 04 juin.2011 à 15:50:27, Tahar BEN ACHOUR wrote:
 une idée, pour éviter ce souci ?

ne pas utiliser ls dans une boucle for,
car pour un fichier nommer 'my file', la boucle itérera sur 'my', puis sur 
'file'.

la bonne méthode est :
for file in ./*
do echo rar e \$file\ #pour voir, et si c'est correct : do rar e $file
done

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/20110604160247.ga3...@chorion.ath.cx



Re: Script Bash, prendre en considération l'espace dans les noms de fichier

2011-06-04 Par sujet mouss
Le 04/06/2011 16:50, Tahar BEN ACHOUR a écrit :
 Bonjour à tous,
 
 J'ai un petit soucis avec un petit script j'ai un dossier dans lequel je 
 voudrais extraire tous les fichiers qui s'y trouvent,
 
 mon script est le suivant
 
 for  myfile in $(ls)
 do
 rar e $myfile
 done
 
 le problème c'est que tous les fichiers sont nommés avec des espaces comme 
 séparateur et le script considère chaque mot comme fichier à part ! Comment 
 faire pour prendre en considération l'espace  dans le nom de fichier ?

for agit sur chacun des petits bouts, qui sont séparés par des espaces
(tu peux changer le séparateur, mais gare à toi...). il faut utiliser
autre chose.

ls | while read file; do
macommande $file;
done

on peut aussi s'amuser avec find/xargs/...

 
 Merci pour votre aide
 
 par exemple si j'ai un fichier nommé mon fichier.rar en remplaçant rar e 
 $myfile par echo $myfile j'ai le réslutat suivant
 
 mon
 fichier
 
 une idée, pour éviter ce souci ?
 
 Merci
 

-- 
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: http://lists.debian.org/20110604220501.cb11313a6...@liszt.debian.org