Ich habe eine Anforderung, bei der ich die erste Zeile aus der Ausgabe von ls -latr "some path"
Da ich total 136
aus der folgenden Ausgabe entfernen möchte, weglassen möchte
Also habe ich geschrieben, ls -latr /home/kjatin1/DT_901_linux//autoInclude/system | tail -q
was 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
awk 'NR>1'
sed '1d'
Das
tail
Programm kann dies tun:Das
-n +2
bedeutet "in der zweiten Ausgabezeile durchgehen".quelle
tail
Implementierungen das-n
Flag dafür erfordern , wie intail -n +2
find . -name . -o -ls -prune
, aber das erzeugt etwas andere Ausgabe.coreutils
Schwanz gearbeitet, aber es wurde veraltet und dann entfernt. Sie erhalten jetzttail: cannot open '+2' for reading: No such file or directory
(Coreutils 8.7). Traurige Sache ist, dass andere Implementierungen nicht akzeptieren-n
...quelle
Dies ist ein schneller hackiger Weg :
ls -lart | grep -v ^total
.Entfernen Sie grundsätzlich alle Zeilen, die mit "total" beginnen.
ls
Dies 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.quelle
grep
Filtern für diese Aufgabe ist im Allgemeinen gefährlich. es könnte unerwartet zusammenpassen.