Lire les fichiers d'un dossier

Résolu
katwes -  
 katwes -
Bonjour,



J'essaie de lire le contenu de fichier situés dans un dossier, mais le nom de ces fichiers contiennent des espaces et c'est là que j'ai un problème.
J'ai essayé le code suivant :
#!/bin/bash
IFS=$'\n\t' 
for file in 'ls *.htm' 
do
     LIENS2="$(cat \"$file\" )">>fichier_tmp.txt
done
unset IFS 

j'ai le message
cat: "fichier 1.htm": No such file or directory
alors que si j'essaie avec un fichier qui n'existe pas
cat "fichier 1.html"

le message est cat: fichier 1.html: No such file or directory

Il n'y a plus les quotes.
Est-ce que quelqu'un peut m'aider ?

Merci d'avance

5 réponses

  1. katwes
     
    Le but de mon script est de lire tous les fichiers d'un répertoire et de mettre le contenu de ces fichiers dans un autre fichier fichier_tmp. Mais comme le nom de ces fichiers contiennente des espaces un cat $file ne fonctionne pas car il s'arrête au premier espace et ne trouve pas le fichier en question.

    D'où la boucle pour lire le répertoire et le cat pour lire le contenu des fichiers.
    Après je souhaite me restreindre à certaines lignes . Mais si je n'arrive pas à faire cette simple opération je suis bloquée.
    1
    1. Utilisateur anonyme
       
      «lire» n'a pas vraiment de sens :(
      cat ./*.htm >fichier_tmp.txt
      envoie le contenu de tous les fichiers *.htm dans le fichier.tmp
      0
    2. katwes
       
      Merci je vais essayer
      0
    3. katwes
       
      Ca fonctionne
      Merci encore.
      0
  2. _Tawal_ Messages postés 672 Statut Membre 73
     
    Bonjour,

    Vérifie les droits et permissions sur le fichier.
    0
  3. katwes
     
    Merci pour cette réponse, mais je ne pense pas que ce soit ça le problème.

    car si je tape directement la commande
    cat "fichier 1.html"

    j'ai un résultat
    Mais je n'arrive pas à faire la même chose avec une variable dans un script
    même chose si j'utilise le chemin absolu
    0
  4. _Tawal_ Messages postés 672 Statut Membre 73
     
    Essaie avec :
    cat fichier\ 1.htm
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Utilisateur anonyme
     
    salut,

    que crois-tu faire avec «
    LIENS2="$(cat \"$file\" )">>fichier_tmp.txt
    » ?

    Plus simplement
    cat ./*.htm >fichier_tmp.txt
    c'est quand même à ça que sert 'cat' : concaténer des fichiers.
    mais l'emploi d'un fichier temporaire n'est probablement pas utile.
    0