Parcourir un dossier avec des fichiers ayant des espaces. [Shell] - Shell/Batch - Programmation
Marsh Posté le 17-12-2003 à 23:25:11
$(echo *)
question posée 100x
find -print0 | xargs -0
ou alors tu passes avec un vrai langage genre python (os.walk()) ou perl
Marsh Posté le 18-12-2003 à 00:17:42
Taz a écrit : $(echo *) |
Je ne vois pas ce qu'il y a de si marrant
Un $(ls) ou `ls` aurait été plus joli ?
Où est la grosse erreur ?
Et je n'arrive pas à intégrer ta solution à la commande for ou à stocker son résultat dans une variable par exemple.
Taz a écrit : |
Vu que ça me paraît être un truc de base dans la programmation shell, je me vois mal lacher ce problème
Sur le net, je n'ai vu que des usages de `ls`.
Marsh Posté le 18-12-2003 à 00:30:13
1) ben for i in * tout simplement
2) oui c un problème à la con, la seule façon c'est d'employer un drapeu de fin de chaine comme '\0'. find sait imprimer avec ce format, xargs le lire. sinon les autres noms. après c'est la merde avec les espaces dans tous les sens,
Marsh Posté le 18-12-2003 à 00:40:08
Merci pour le for, je compliquais vraiment pour rien...
Bon et pour ce script, ça me gonfle, ça va se finir en Perl.
Marsh Posté le 17-12-2003 à 23:06:00
Je voudrait parcourir un dossier mais celui-ci contient des fichiers avec des espaces dans leurs noms.
J'utilise ce code, en étant placé dans le dossier adéquat:
Imaginons que dans le dossier j'ai ces fichiers:
rouge
vert
« jaune orange »
« echo * » va retourner la liste de fichiers suivante:
rouge vert jaune orange
c'est-à-dire qu'avec cette exemple, je vient d'obtenir 4 fichiers au lieu de 3 et évidemment, ça déconne pour la suite
Comment faire ?
Rmq: avec un ls à la place d'echo, c'est la même chose
Message édité par eL_Shaman___ le 17-12-2003 à 23:07:11