Ich habe Dateien mit dem Namen file.88_0.pdb
, file.88_1.pdb
, ...
, file.88_100.pdb
. Ich möchte cat
sie, damit sie file.88_1.pdb
nach file.88_0.pdb
, file.88_2.pdb
nach file.88_1.pdb
und so weiter eingefügt werden . Wenn ich das tue cat file.88_*.pdb > all.pdb
, werden die Dateien in der folgenden Reihenfolge zusammengestellt: 0 1 10 11 12 13 14 15 16 17 18 19 2 20...
usw. Wie füge ich sie so zusammen, dass die Reihenfolge ist 0 1 2 3 4 5 6...
?
files
cat
text-formatting
Natriumnitrat
quelle
quelle
Antworten:
Verwenden
brace expansion
Um das Drucken der Fehlermeldungen für nicht vorhandene Dateien zu ignorieren, verwenden Sie:
In der
zsh
Shell haben Sie auch das(n)
Globbing-Qualifikationsmerkmal, um eine numerische Sortierung (im Gegensatz zur Standardeinstellung alphabetisch ) für Globs anzufordern:quelle
oder in Bezug auf den Kommentar von Jesse_b:
quelle
Versuchen:
Dies konnte
sort
die Dateien durch das (-k2
) zweite Feld_
als Trennzeichen verwenden. Hier müssen Sie verwenden,>>
sonst überschreibt jede neue Datei die letzte.quelle
0 1 10 11 12...
sort --version
was bekommst du? Und Sie haben den-n
Befehl sortieren richtig?sort (GNU coreutils) 5.93
/dev/null
Ergänzung zur anderen Antwort wurde dringend benötigt!find ... | sort ... | xargs cat >> $output
stattdessen so etwas wie .In der Shell ohne Klammererweiterung können Sie
ls
+ verwendenxargs
:ls sortiert Dateien in numerischer Reihenfolge:
-v
natürliche Art von (Versions-) Zahlen im Text.quelle