Pominięcie pierwszego wiersza z dowolnego wyniku polecenia systemu Linux

167

Mam wymaganie, w którym chciałbym pominąć pierwszy wiersz z danych wyjściowych ls -latr "some path"Ponieważ muszę usunąć total 136z poniższego wyniku

wprowadź opis obrazu tutaj

Napisałem więc, ls -latr /home/kjatin1/DT_901_linux//autoInclude/system | tail -qktóry wykluczył pierwszą linię, ale gdy folder jest pusty, nie pomija go. Powiedz mi, jak pominąć pierwszą linię w każdym wyjściu polecenia Linuksa

AabinGunz
źródło

Odpowiedzi:

185

Prześlij do awk:

awk '{if(NR>1)print}'

lub sed

sed -n '1!p'
Fredrik Pihl
źródło
21
lubawk 'NR>1'
mitchus
24
takżesed '1d'
JoL
261

tailProgram może to zrobić:

ls -lart | tail -n +2

Te -n +2środki „start przejazdem w drugim wierszu wyjścia”.

Donal Fellows
źródło
1
Zauważ, że niektóre tailimplementacje wymagają do tego -nflagi, jak wtail -n +2
Mat
Możesz również użyć find . -name . -o -ls -prune, ale to daje nieco inny wynik.
Donal Fellows
@Mat: Tak się wydaje, chociaż działało bez, kiedy próbowałem (na OSX).
Donal Fellows
kiedyś działał z coreutilstailem, ale został wycofany, a następnie usunięty. Teraz otrzymujesz tail: cannot open '+2' for reading: No such file or directory(coreutils 8.7). Smutne jest to, że inne implementacje nie akceptują -n...
Mat,
4
@Mat: Niektórzy tego potrzebują, inni nie chcą? Fuj! Ugh ugh ugh ugh! To jest obrzydliwe.
Donal Fellows
23
ls -lart | tail -n +2 #argument means starting with line 2
Jeff Ferland
źródło
20

Jest to szybki sposób hacky: ls -lart | grep -v ^total.

Zasadniczo usuń wszystkie wiersze zaczynające się od „total”, które na lswyjściu powinny być tylko pierwszą linią.

Bardziej ogólny sposób (na wszystko):

ls -lart | sed "1 d"

sed "1 d" oznacza tylko wypisywanie wszystkiego oprócz pierwszej linii.

wkl
źródło
3
Używanie grepfiltrów do tego zadania jest generalnie niebezpieczne; może nieoczekiwanie dopasować się do rzeczy.
Donal Fellows,
Czasami tak, i myślę, że to nie jest najlepsze rozwiązanie ... ale to polecenie ls zawsze prowadzi wpisy z uprawnieniami do katalogu. Nie jest to idealne rozwiązanie, ponieważ grep nadal sprawdza każdą linię, a ls zachowuje się inaczej z innymi flagami.
Jeff Ferland,
1
to tylko semantyka, ale technicznie oznacza to usunięcie pierwszej linii ze strumienia.
John Morales,
Lepiej miej nadzieję, że nie masz pliku z totalem w jego nazwie, o którym chcesz wiedzieć
Amias