it-swarm.com.de

Die ersten beiden Ergebnisse stammen vom Befehl ls

Ich benutze ls -l -t, um eine Liste der Dateien in einem Verzeichnis nach Zeit geordnet abzurufen.

Ich möchte das Suchergebnis auf die ersten zwei Dateien in der Liste beschränken.
Ist das möglich?
Ich habe es mit grep versucht und mich abgemüht.

47
Fidel

Sie können es in head leiten:

ls -l -t | head -3

Gibt dir die obersten 3 Zeilen (2 Dateien und die Summe).

Dadurch erhalten Sie nur die ersten zwei Zeilen mit Dateien, wobei die Größenzeile übersprungen wird:

ls -l -t | tail -n +2 | head -2

tail entfernt die erste Zeile und head gibt die nächsten 2 Zeilen aus.

74
dag

Um zu vermeiden, dass die oberste Ausgabezeile behandelt wird, können Sie die Sortierung umkehren und die letzten beiden Zeilen abrufen

ls -ltr | tail -2

Dies ist ziemlich sicher, aber je nachdem, was Sie mit diesen beiden Dateieinträgen tun, nachdem Sie sie gefunden haben, sollten Sie Parsing ls über die Probleme bei der Verwendung von ls zum Abrufen von Dateien und Dateien lesen Information.

7
Stephen P

Mit dem Befehl head können Sie nur die ersten beiden Ausgabezeilen erfassen:

ls -l -t | head -2
2
larsks

Oder versuchen Sie es einfach so

ls -1 -t | head -2

Der Schalter -1 überspringt die Titelzeile.

0

Du musst durch den Kopf pfeifen.

ls -l -t | head -n 3

die beiden ersten Ergebnisse werden ausgegeben.