Ich habe eine Eingabe (sagen wir eine Datei). In jeder Zeile befindet sich ein Dateiname. Wie kann ich diese Datei lesen und den Inhalt für jede einzelne anzeigen?
158
So etwas würde reichen:
xargs cat <filenames.txt
Das xargs
Programm liest seine Standardeingabe und führt für jede Eingabezeile das cat
Programm mit den Eingabezeilen als Argument (e) aus.
Wenn Sie dies wirklich in einer Schleife tun möchten, können Sie:
for fn in `cat filenames.txt`; do
echo "the next file is $fn"
cat $fn
done
"foreach" ist nicht der Name für bash. Es ist einfach "für". Sie können Dinge in einer Zeile nur wie folgt tun:
Referenz: http://www.cyberciti.biz/faq/linux-unix-bash-for-loop-one-line-command/
quelle
Hier ist eine
while
Schleife:quelle
read
Dadurch wird der Dateiname gefolgt vom Inhalt der Datei ausgegeben:
quelle
Sie werden wahrscheinlich Leerzeichen in Ihren Dateinamen behandeln wollen, obwohl sie abscheulich sind :-)
Also würde ich mich zunächst für etwas entscheiden wie:
quelle
wird den Trick machen
quelle
Wenn alle dieselbe Erweiterung haben (z. B. .jpg), können Sie Folgendes verwenden:
(Diese Lösung funktioniert auch, wenn der Dateiname Leerzeichen enthält.)
quelle