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

for et les noms avec des espaces blancs....

29 réponses
Avatar
Dominique MICOLLET
Bonjour

Soit un répertoire contenant un paquet de fichiers dont les noms contiennent
des espaces.
Je souhaire faire une opération répétitive sur ces fichiers, en bash (1).
Lorsque je fais la commande à la main et que j'utilise la completion
automatique, bash échappe automatiquement les blancs en les préfixant par
\.
___$ mv aa-> aa->.ccc
est automatiquement traduit en :
___$ mv aaaa\ bbb aaaa\ bbb.ccc
et le fichier 'aaaa bbb' est bien renommé 'aaaa bbb.ccc'
J'essaie d'automatiser la chose pour tous les fichiers avec :
___$ for nom in *; do mv ${nom} ${nom}.ccc ; done
qui ne fonctionne pas parce que les blancs ne sont pas échappés.
J'ai essayé d'insérer des \" et des \' en des endroits stratégiques, sans
succès.

Quelqu'un aurait-il une suggestion à me faire ?

Cordialement.

(1) : pour être précis, il s'agit d'un ensemble de photographies dont je
dois faire un montage pour réaliser un trombinoscope.

--
Dominique MICOLLET
Adresse email : enlever deux francs

9 réponses

1 2 3
Avatar
Cyrille Lefevre
Le 10/10/2010 21:56, Gilles a écrit :

Et pour éviter ce problème:

for i in ./* ; do echo mv "$i" "$i.ccc"; done



Bonjour,

alternative plus propre à mon goût :-)

for i in * ; do echo mv -- "$i" "$i.ccc"; done

notez le -- qui signifie ne plus traiter les arguments suivants
commençant par - comme des options de mv.

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Avatar
Cyrille Lefevre
Le 09/10/2010 21:13, Rikishi42 a écrit :

find ./ -type f -maxdepth 1 -exec mv '{}' '{}'.ccc ';'

Non ?



Bonjour,

-maxdepth n'est malheureusement pas portable, mais en supposant qu'il
est sous linux...

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Avatar
Cyrille Lefevre
Le 10/10/2010 20:49, Stephane CHAZELAS a écrit :
2010-10-08, 23:49(+02), Cyrille Lefevre:

c'est une nouveauté des nouveaux shell, cela équivaut à $(echo 'n')



$(echo 'n') est soit 'n', soit '' (suivant l'implantation de
echo) car $() enleve les LF terminaux.



c'était une image, mais bon :-)

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Avatar
Dominique MICOLLET
Gilles wrote:

Je ne comprend pas bien la nécessité de toutes les solution "exotiques"
présentées par ailleurs.


...
for nom in *; do mv "${nom}" "${nom}.cc" ; done



Bien vu.

J'aurais pourtant parié un chocolat entier que j'avais tenté l'essai sans
succès......


Désolé pour tout ce bruit inutile (encore que pour ma part, j'ai appris pas
mal de trucs intéressants).

Merci à tous.
--
Dominique MICOLLET
Adresse email : enlever deux francs
Avatar
Gilles
Ref: <i8u03i$2r8g$ de Cyrille Lefevre

alternative plus propre à mon goût :-)

for i in * ; do echo mv -- "$i" "$i.ccc"; done

notez le -- qui signifie ne plus traiter les arguments suivants
commençant par - comme des options de mv.



A la limite près que que tous les "mv" du monde ne sont pas nés égaux: je ne
suis pas 100% sur que le "--" est accepté par les "mv" non gnu.
--
Gilles
Avatar
Gilles
Ref: de Gilles
Ref: <i8u03i$2r8g$ de Cyrille Lefevre

alternative plus propre à mon goût :-)

for i in * ; do echo mv -- "$i" "$i.ccc"; done

notez le -- qui signifie ne plus traiter les arguments suivants
commençant par - comme des options de mv.



A la limite près que que tous les "mv" du monde ne sont pas nés égaux: je ne
suis pas 100% sur que le "--" est accepté par les "mv" non gnu.



En me relisant je me trouve soudain un peu "sec" dans mes réponses sur ce fil,
donc merci d'accepter ceci en complément: :-)

--
Gilles
Avatar
Cyrille Lefevre
Le 11/10/2010 20:31, Gilles a écrit :
Ref: de Gilles
Ref: <i8u03i$2r8g$ de Cyrille Lefevre

alternative plus propre à mon goût :-)

for i in * ; do echo mv -- "$i" "$i.ccc"; done

notez le -- qui signifie ne plus traiter les arguments suivants
commençant par - comme des options de mv.



A la limite près que que tous les "mv" du monde ne sont pas nés é gaux: je ne
suis pas 100% sur que le "--" est accepté par les "mv" non gnu.



En me relisant je me trouve soudain un peu "sec" dans mes réponses su r ce fil,
donc merci d'accepter ceci en complément: :-)




Bonjour,

c pas grave. toutefois, tous les systèmes dit posix doivent accepter le
-- comme fin de traitement des options.
Q : existe-t-il des systèmes non posix à ce jour ?

Cordialement,

Cyrille Lefevre.
--
mailto:Cyrille.Lefevre-news%
supprimer "%nospam% et ".invalid" pour me repondre.
Avatar
Erwan David
Cyrille Lefevre <cyrille.lefevre-news% écrivait :

Le 11/10/2010 20:31, Gilles a écrit :
Ref: de Gilles
Ref: <i8u03i$2r8g$ de Cyrille Lefevre

alternative plus propre à mon goût :-)

for i in * ; do echo mv -- "$i" "$i.ccc"; done

notez le -- qui signifie ne plus traiter les arguments suivants
commençant par - comme des options de mv.



A la limite près que que tous les "mv" du monde ne sont pas nés égaux: je ne
suis pas 100% sur que le "--" est accepté par les "mv" non gnu.



En me relisant je me trouve soudain un peu "sec" dans mes réponses sur ce fil,
donc merci d'accepter ceci en complément: :-)




Bonjour,

c pas grave. toutefois, tous les systèmes dit posix doivent accepter le
-- comme fin de traitement des options.
Q : existe-t-il des systèmes non posix à ce jour ?



windows. Qui a un "mode de compatibilité posix" pour être accepté aux
apels d'offres du DOD, mais ce mode désactive une bonne partie de l'OS.

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
Avatar
Erwan David
Antoine Leca écrivait :

Erwan David écrivit :
Cyrille Lefevre écrivait :
Q : existe-t-il des systèmes non posix à ce jour ?



windows. Qui a un "mode de compatibilité posix" pour être accepté aux
apels d'offres du DOD, mais ce mode désactive une bonne partie de l'OS.



... et n'est pas disponible dans 99,9% des installations (c'est une
option gratuite seulement accessible aux versions haut de gamme).
Si tu inclus Cygwin comme manière d'activer la compatibilité Posix, il y
a nettement plus de monde et nettement moins de choses désactivées.



Oui, tout à fait. C'est pourquoi je compte windows dans les système non posix.

--
Le travail n'est pas une bonne chose. Si ça l'était,
les riches l'auraient accaparé
1 2 3