Auslassen der ersten Zeile aus einer Linux-Befehlsausgabe


167

Ich habe eine Anforderung, bei der ich die erste Zeile aus der Ausgabe von ls -latr "some path"Da ich total 136aus der folgenden Ausgabe entfernen möchte, weglassen möchte

Geben Sie hier die Bildbeschreibung ein

Also habe ich geschrieben, ls -latr /home/kjatin1/DT_901_linux//autoInclude/system | tail -qwas die 1. Zeile ausgeschlossen hat, aber wenn der Ordner leer ist, wird er nicht weggelassen. Bitte sagen Sie mir, wie ich die erste Zeile in einer Linux-Befehlsausgabe weglassen kann

Antworten:



260

Das tailProgramm kann dies tun:

ls -lart | tail -n +2

Das -n +2bedeutet "in der zweiten Ausgabezeile durchgehen".


1
Beachten Sie, dass einige tailImplementierungen das -nFlag dafür erfordern , wie intail -n +2
Mat

Sie könnten auch verwenden find . -name . -o -ls -prune, aber das erzeugt etwas andere Ausgabe.
Donal Fellows

@Mat: So scheint es, obwohl es ohne funktioniert hat, als ich es versuchte (unter OSX).
Donal Fellows

Früher hat es mit coreutilsSchwanz gearbeitet, aber es wurde veraltet und dann entfernt. Sie erhalten jetzt tail: cannot open '+2' for reading: No such file or directory(Coreutils 8.7). Traurige Sache ist, dass andere Implementierungen nicht akzeptieren -n...
Mat

4
@Mat: Einige brauchen es, andere nehmen es nicht? Pfui! Ugh ugh ugh ugh! Das ist wiederlich.
Donal Fellows


20

Dies ist ein schneller hackiger Weg : ls -lart | grep -v ^total.

Entfernen Sie grundsätzlich alle Zeilen, die mit "total" beginnen. lsDies sollte in der Ausgabe nur die erste Zeile sein.

Ein allgemeinerer Weg (für alles):

ls -lart | sed "1 d"

sed "1 d" bedeutet nur alles außer der ersten Zeile drucken.


3
Das grepFiltern für diese Aufgabe ist im Allgemeinen gefährlich. es könnte unerwartet zusammenpassen.
Donal Fellows

Manchmal ja, und ich denke, es ist nicht die beste Lösung ... aber dieser Befehl ls führt immer Einträge mit den Verzeichnisberechtigungen. Es ist nicht ideal, da grep weiterhin jede Zeile überprüft und sich bei anderen Flags anders verhält.
Jeff Ferland

1
Dies ist nur eine Semantik, aber technisch bedeutet dies, dass die erste Zeile aus dem Stream gelöscht wird.
John Morales

Ich hoffe, Sie haben keine Datei mit dem Namen total, über die Sie Bescheid wissen möchten
Amias
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.