J'ai une entrée (disons un fichier). Sur chaque ligne, il y a un nom de fichier. Comment puis-je lire ce fichier et afficher le contenu de chacun.
158
Quelque chose comme ça ferait:
xargs cat <filenames.txt
Le xargs
programme lit son entrée standard, et pour chaque ligne d'entrée exécute le cat
programme avec les lignes d'entrée comme argument (s).
Si vous voulez vraiment faire cela en boucle, vous pouvez:
for fn in `cat filenames.txt`; do
echo "the next file is $fn"
cat $fn
done
"foreach" n'est pas le nom de bash. C'est simplement «pour». Vous pouvez faire des choses en une seule ligne comme:
Référence: http://www.cyberciti.biz/faq/linux-unix-bash-for-loop-one-line-command/
la source
Voici une
while
boucle:la source
read
Cela affichera le nom du fichier suivi du contenu du fichier:
la source
Vous voudrez probablement gérer les espaces dans vos noms de fichiers, aussi odieux soient-ils :-)
J'opterais donc au départ pour quelque chose comme:
la source
fera l'affaire
la source
S'ils ont tous la même extension (par exemple .jpg), vous pouvez utiliser ceci:
(Cette solution fonctionne également si le nom de fichier comporte des espaces)
la source