Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2767 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Shell] Parcourir un dossier avec des fichiers ayant des espaces.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Shell] Parcourir un dossier avec des fichiers ayant des espaces.

n°592953
eL_Shaman_​__
Plop.
Posté le 17-12-2003 à 23:06:00  profilanswer
 

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:

Code :
  1. for i in $(echo *)
  2.   do
  3.   traitement du fichier $i
  4. done


 
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  :whistle:  
 
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
mood
Publicité
Posté le 17-12-2003 à 23:06:00  profilanswer
 

n°592969
Taz
bisounours-codeur
Posté le 17-12-2003 à 23:25:11  profilanswer
 

$(echo *)
 
 
[:rofl]
 
 
question posée 100x
 
find -print0 | xargs -0
 
ou alors tu passes avec un vrai langage genre python (os.walk()) ou perl

n°593006
eL_Shaman_​__
Plop.
Posté le 18-12-2003 à 00:17:42  profilanswer
 

Taz a écrit :

$(echo *)
 
 
[:rofl]
 


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 :


ou alors tu passes avec un vrai langage genre python (os.walk()) ou perl


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

n°593012
Taz
bisounours-codeur
Posté le 18-12-2003 à 00:30:13  profilanswer
 

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,

n°593018
eL_Shaman_​__
Plop.
Posté le 18-12-2003 à 00:40:08  profilanswer
 

Merci pour le for, je compliquais vraiment pour rien...
 
Bon et pour ce script, ça me gonfle, ça va se finir en Perl.

n°593026
Taz
bisounours-codeur
Posté le 18-12-2003 à 01:01:49  profilanswer
 

fait le en perl


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Shell] Parcourir un dossier avec des fichiers ayant des espaces.

 

Sujets relatifs
OS-Unix : Tester si un fichier est un dossierDouble "" et le shell
tuto sur la manipulation et la création de fichiers et dossiersRecherche librairie pour traiter des fichiers PDF
SHELL/TCSH : Probleme sur un script automatiquemake $(shell ...) et commande complex
[PHP] fonction qui returne true si 2 fichiers sont identiquesEspaces PHP
Fichiers d'aide help&webComposants pour transfert de fichiers...
Plus de sujets relatifs à : [Shell] Parcourir un dossier avec des fichiers ayant des espaces.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR