Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

4 réponses
Avatar
Tahar BEN ACHOUR
Bonjour =E0 tous,=0A=0AJ'ai un petit soucis avec un petit script j'ai un do=
ssier dans lequel je =0Avoudrais extraire tous les fichiers qui s'y trouven=
t,=0A=0Amon script est le suivant=0A=0Afor myfile in $(ls)=0Ado=0Arar e $m=
yfile=0Adone=0A=0Ale probl=E8me c'est que tous les fichiers sont nomm=E9s a=
vec des espaces comme =0As=E9parateur et le script consid=E8re chaque mot c=
omme fichier =E0 part ! Comment =0Afaire pour prendre en consid=E9ration l'=
espace dans le nom de fichier ?=0A=0AMerci pour votre aide=0A=0Apar exempl=
e si j'ai un fichier nomm=E9 "mon fichier.rar" en rempla=E7ant rar e =0A$my=
file par echo $myfile j'ai le r=E9slutat suivant=0A=0Amon=0Afichier=0A=0Aun=
e id=E9e, pour =E9viter ce souci ?=0A=0AMerci

--
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

4 réponses

Avatar
Bernard Schoenacker
Le Sat, 4 Jun 2011 15:50:27 +0100 (BST),
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 ?

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/
Avatar
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
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/
Avatar
Иван
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/
Avatar
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
En cas de soucis, contactez EN ANGLAIS
Archive: http://lists.debian.org/