Lire les fichiers d'un dossier

Résolu/Fermé
katwes - 4 mars 2012 à 21:45
 katwes - 5 mars 2012 à 22:27
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
A voir également:

5 réponses

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
«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
Merci je vais essayer
0
Ca fonctionne
Merci encore.
0
_Tawal_ Messages postés 644 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 7 juillet 2012 73
4 mars 2012 à 23:08
Bonjour,

Vérifie les droits et permissions sur le fichier.
0
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
_Tawal_ Messages postés 644 Date d'inscription jeudi 23 février 2012 Statut Membre Dernière intervention 7 juillet 2012 73
5 mars 2012 à 01:03
Essaie avec :
cat fichier\ 1.htm
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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