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

Le
Tahar BEN ACHOUR
Bonjour à tous, J'ai un petit soucis avec un petit script j'ai un do=
ssier dans lequel je voudrais extraire tous les fichiers qui s'y trouven=
t, mon script est le suivant for myfile in $(ls) do rar e $m=
yfile done le problème c'est que tous les fichiers sont nommés a=
vec des espaces comme séparateur et le script considère chaque mot c=
omme fichier à part ! Comment faire pour prendre en considération l'=
espace dans le nom de fichier ? Merci pour votre aide par exempl=
e si j'ai un fichier nommé "mon fichier.rar" en remplaçant rar e $my=
file par echo $myfile j'ai le réslutat suivant mon fichier un=
e 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-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/935529.41665.qm@web26307.mail.ukl.yahoo.com
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bernard Schoenacker
Le #23420711
Le Sat, 4 Jun 2011 15:50:27 +0100 (BST),
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




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
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Pascal Le Bris
Le #23420891
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
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Иван
Le #23421211
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
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
mouss
Le #23422041
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
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Publicité
Poster une réponse
Anonyme