Ist es möglich, diese Ausgabe sortiert nach titlepage_1.pdf vor titlepage_19.pdf anzuzeigen?
$ ls
allTitlepage.pdf titlepage_12.pdf titlepage_19.tex titlepage_26.pdf titlepage_32.tex titlepage_4.tex
allTitlepage.tex titlepage_12.tex titlepage_1.pdf titlepage_26.tex titlepage_33.pdf titlepage_5.pdf
assignment.pdf titlepage_13.pdf titlepage_1.tex titlepage_27.pdf titlepage_34.pdf titlepage_5.tex
assignment.tex titlepage_13.tex titlepage_20.pdf titlepage_27.tex titlepage_34.tex titlepage_6.pdf
graphicsAssignment2.pdf titlepage_14.pdf titlepage_20.tex titlepage_28.pdf titlepage_35.pdf titlepage_6.tex
graphicsAssignment2.tex titlepage_14.tex titlepage_21.pdf titlepage_28.tex titlepage_35.tex titlepage_7.pdf
README.md titlepage_15.pdf titlepage_21.tex titlepage_29.pdf titlepage_36.pdf titlepage_7.tex
thesisTitlepage.pdf titlepage_15.tex titlepage_22.pdf titlepage_29.tex titlepage_36.tex titlepage_8.pdf
thesisTitlepage.tex titlepage_16.pdf titlepage_22.tex titlepage_2.pdf titlepage_37.pdf titlepage_8.tex
titlepage_0.pdf titlepage_16.tex titlepage_23.pdf titlepage_2.tex titlepage_37.tex titlepage_9.pdf
titlepage_0.tex titlepage_17.pdf titlepage_23.tex titlepage_30.pdf titlepage_38.pdf titlepage_9.tex
titlepage_10.pdf titlepage_17.tex titlepage_24.pdf titlepage_30.tex titlepage_38.tex titlepage_one.pdf
titlepage_10.tex titlepage_18.pdf titlepage_24.tex titlepage_31.pdf titlepage_3.pdf titlepage_one.tex
titlepage_11.pdf titlepage_18.tex titlepage_25.pdf titlepage_31.tex titlepage_3.tex titlepage_two.tex
titlepage_11.tex titlepage_19.pdf titlepage_25.tex titlepage_32.pdf titlepage_4.pdf
command-line
ls
alhelal
quelle
quelle
Antworten:
Verwenden Sie den Schalter -v [natürliche Art von (Versions-) Nummern im Text]
quelle
Die Ausgabe ist sortiert. Laut der
ls
Manpage:Wenn Sie jedoch noch weiter gehen möchten, haben Sie mindestens zwei Möglichkeiten:
Option 1 -
ls
Sortierschalterman ls
Informiert Sie über eine Reihe von Schaltern, die Sie zum Sortieren verwenden können. Insbesondere heißt es in der Manpage von ls :In Ihrem Fall möchten Sie "version" sortieren (-v). Seien Sie jedoch vorsichtig, da hierdurch auch alles sortiert wird, was ein
blahblah-X.Y.Z-A
Arrangement aufweist, das möglicherweise nicht ganz Ihren Wünschen entspricht. Siehe auch die GNU-Erklärung zur Versionssortierung .Option 2 - Pipes zu Sortierbefehlen
Sie können eine Pipe verwenden
|
, um die Ausgabe an einen anderen Befehl zu senden, z. B. den Befehl, mitsort
dem Sie auf verschiedene andere Arten sortieren können , z. B.ls -1 | sort -n
wenn Sie Dateien nummeriert haben. Der-1
Schalter stellt sicher, dass die Ausgabe eine Zeile pro Datei ist.Ebenso können Sie die Ausgabe manipulieren, um das Sortieren zu erleichtern, indem Sie Dinge wie
sed
oder verwendenawk
.Es gibt viele Möglichkeiten, diese Art von Frage zu beantworten. Möglicherweise ist ein Linux-Shell-Tutorial hilfreich.
* (Sehen Sie, was ich dort gemacht habe? :-P)
quelle
Wie bereits in einem Kommentar darauf hingewiesen, der Ausgang ist bereits sortiert, sondern durch Zeichen, keine Zahlen. Möglicherweise möchten Sie die Ausgabe von leiten,
ls
durchsort
die ein Schalter zum Sortieren nach Zahlen in Zeichenfolgen verfügt:Aus der Manpage :
Nachteil: Bei der Ausgabe werden
ls
die Dateien in einer Tabelle mit so vielen Spalten ausgegeben, wie auf den aktuellen Bildschirm passen (genau wie Sie in Ihrem Beitrag gezeigt haben). Wenn jedochls
festgestellt wird, dass die Ausgabe in eine Datei oder in eine Pipe (wie inls | sort
) umgeleitet wird, werdenls
die Dateien in nur einer Spalte gedruckt , da davon ausgegangen wird, dass die Ausgabe zeilenweise (auch dateiweise) verarbeitet werden soll. von einem anderen Programm (wiesort
). Die Ausgabe vonls | sort -V
wird also in einer Spalte statt in einer Tabelle mit mehreren Spalten erfolgen. Lesen Sie @vijays einfache, aber perfekte Antwort, wie Sie das vermeiden können.quelle
column
ls -l
: listet Dateien des Verzeichnisses vertikal aber nicht in einer bestimmten Reihenfolge auf.ls -l | sort -k 3
:-k 3
würde die Ausgabe des vorherigen Befehls nach der 3. Spalte sortieren.quelle