Ich bin eben in ein hier dargestelltes Problem gelaufen.
Ich erzeuge 3 Dateien a, b, c aber eine mit Großbuchstaben, nämlich B - zum Filtern hänge ich noch ein .txt dran.
1 | for n in a B c; do echo "foo bar $n" > $n.txt; done |
Soweit, so gut. Sind alle da:
1 2 | s *.txt a.txt B.txt c.txt |
In der Reihenfolge des Erzeugens, oder alphabetisch gereiht unter Vernachlässigung von Groß-Kleinschreibung oder zufällig gereiht. Prüfen wir das kurz nach:
1 2 | for n in c B a; do echo "foo bar $n" > $n.txt; done; ls *.txt a.txt B.txt c.txt |
Also nicht in Reihenfolge des Erzeugens und auch für zufällig spricht nur noch wenig.
Jetzt habe ich gelernt, dass die Bash die Wildcards interpetiert und an ls schon die fertige Dateiliste übergibt, und so dachte ich, das müsse die gleiche Reihenfolge wie bei sed sein, was spät, aber hoffentlich nicht zu spät, erklärt, wieso ich in die Dateien was reingeschrieben hab.
1 2 3 4 | sed 's/bar/cafe/' *.txt foo cafe B foo cafe a foo cafe c |
Andere Reihenfolge. Bemerkenswert, oder?