Einfache Unix-Art, die Schleife durch Leerzeichen getrennte strings?

Habe ich eine Datei namens file_list mit Leerzeichen getrennte strings, die jeweils einen Namen einer Datei verarbeitet werden. Jetzt will ich eine Schleife durch alle Dateinamen und verarbeiten Sie eins nach dem anderen. Pseudocode ist

for every filename in file_list
    process(filename);
end

Habe ich eine etwas ungeschickte Lösung, die

  1. laden Sie die Datei in eine variable durch filenames='cat file_list'
  2. die Anzahl der Räume, N durch tr -cd ' ' <temp_list | wc -c
  3. Schleife von 1 bis N und analysieren von Speicherplatz die einzelnen Dateinamen mit cut

Gibt es einen einfacheren/eleganteren Weg dies zu tun?

  • Haben Sie versucht, die for fname in $file_list? Welche shell benutzt du?
  • Nein, habe ich nicht. Wird, dass die Arbeit? (ein bisschen überrascht, dass es so einfach ist) ich bin mit der bash.
  • Es funktioniert tatsächlich! Vielen Dank! Schockiert über meine stupidness.. LOL
  • for fname in $file_list sollte nicht Arbeit: das Schleifen über den Namen in der variable $file_name. Aber in Ihrer Frage, die Sie sagte, war es nicht eine variable, sondern der name einer Datei.
Schreibe einen Kommentar