
Ich möchte den 8. Dateinamen in einem Verzeichnis mit ls -l und einer Pipe anzeigen. Beispielsweise würde mir ls -l | wc -1 die Anzahl anzeigen, ich möchte jedoch den 8. Dateinamen in der Verzeichnisliste zurückgegeben haben, egal, welcher dieser lautet. Ich habe mir grep und Platzhalter angesehen, weiß aber immer noch nicht, welcher Befehl mir das gewünschte Ergebnis liefern würde.
Danke
Antwort1
versuchen
ls -l | head -n 9 | tail -n 1
Wenn Sie nur den Namen möchten, können Sie ihn cut
am Ende verwenden
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8
tr
ist das Ersetzen mehrerer Leerzeichen und Tabulatoren durch ein Leerzeichen
Antwort2
Ein anderer Weg ist wie folgt.
ls -l | sed -n '9p'
Wenn Sie nur den Datei- oder Verzeichnisnamen möchten, verwenden Sie dies.
ls -l | sed -n '9p' | awk '{print $9}'
jcubic, bist du sicher, dass du das wolltest?
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f8
Ich würde denken, dass er den Datei- oder Verzeichnisnamen so haben möchte.
ls -l | head -n 9 | tail -n 1 | tr -s ' ' | cut -d' ' -f9
Antwort3
ls | awk 'NR==8'
- DunichtSie benötigen
ls -l
eine 1-spaltige Ausgabe oderls -1
möchten die Ausgabe an eine Pipe senden (siehe z. B.Was ist der magische Trenner zwischen Dateinamen in der ls-Ausgabe?). NR==8
gibt nur für Zeile 8 „true“ zurück undawk
die Standardaktion besteht dann darin, es auszudrucken.
Antwort4
Verwenden Sie einfach nicht-l
ls | Kopf -8 | Schwanz -1
Sie erhalten den Dateinamen und ls
die Dateien werden wie folgt sortiert ls -l
: