Jak użyć `cat`, aby zobaczyć górę bardzo długiego pliku?


18

Chciałbym wiedzieć, jak to zrobić

cat my-verylong-file

i pokaż to od góry zamiast od końca. Tak jak polecenie człowieka .


5
Dla kompletności istnieje również morepolecenie ... ale ponieważ morejest mniej zdolny niż less, jest prawdą, że „mniej znaczy więcej”. Wreszcie jest też pg„strona”. Możesz także użyć tych poleceń z potokami - np. ls -l | lessaby rozbić bardzo długą listę plików na wiele stron. I możesz nawet użyć cat my-verylong-file | less.
Baard Kopperud

Warto również zauważyć, że „Domyślnie man używa / usr / bin / less -is”. (z man man).
Digital Trauma

Odpowiedzi:


43

Użyj less, który wyświetli plik od góry, umożliwiając przewijanie go, podobnie jak man:

less my-verylong-file
  • Naciśnij, qaby wyjść.

Jeśli chcesz zobaczyć n pierwszych wierszy pliku, headmoże być alternatywą:

head -n 25 filename

pokaże 25 pierwszych wierszy pliku.

To samo dotyczy n ostatnich linii pliku z tail:

tail -n 25 filename

2
lessmoże być również używany do przewijania bardzo długich wyjść poleceń. Powyżej przedstawiono przykład: ls -laR --color=always ~/ | less -R.
pa4080

2
A nazwa polecenia „mniej” to gra słów w nazwie polecenia „więcej” (które mniej więcej zastępuje), która z kolei została nazwana z podanego przez nią komunikatu „- Więcej”. W systemie MacOS wydaje się, że więcej to ten sam plik binarny, co mniej, więc metamorfoza jest zakończona :)
Thorbjørn Ravn Andersen

5
Więc mniej więcej to samo?
Ryan The Leach

1
@ pa4080: możesz skonfigurować, lesswięc -Rjest domyślnie włączony. Zobacz moją odpowiedź.
Peter Cordes,

@RyanTheLeach more i less : to samo :)
chepner

11

manless(1)domyślnie używa jako pager. Użyj go zamiast cat. Zobacz także odpowiedź @ vidarlo .

Jak dostosować, lessaby było jeszcze lepiej:

Lubię alias m=less, więc jest to tylko jedna litera, ponieważ cały czas ją wpisuję. Umieszczenie |mna końcu czegokolwiek wpuszcza go do pagera.

Możesz umieścić opcje jak -iMRj5Xw aliasie (np. alias m='less -iMRX), Ale robię to z moim ~/.lesskeyplikiem. (Patrz lesskey(1)).

  • -i: wyszukiwania nie uwzględniają wielkości liter (chyba że używasz wielkich liter)
  • -M: dłuższa linia statusu, pokazująca numer linii i procent pliku
  • -R: przepuszcza niektóre kody sterujące, aby można było pokolorować polecenia kolorami w mniej.
  • -X: nie przełączaj się na „alternatywny” ekran emulatora terminala, więc wszystko, na co patrzysz, będzie nadal dostępne po qwyjściu z niego less. (idealne dla stron podręcznika po znalezieniu odpowiedniej opcji i przejrzeniu jej podczas pisania).
  • -j5: wyszukiwania umieszczają linię docelową w wierszu 5 zamiast na górze ekranu. Dzięki temu możesz zobaczyć kontekst po obu stronach wyniku wyszukiwania. (Czasami zmieniam to interaktywnie, pisząc -j40lub coś w środku less, jeśli najbardziej przydatne jest sprawdzenie kontekstu przed trafieniem w wyszukiwarce).

Ja również wiążą .się next-file, a ,do prev-file, ponieważ domyślne powiązania są dwa oddzielne znaki, które są znacznie wolniej Typ: :na :p.


To jest moje .lesskey:

$ cat .lesskey
. next-file
, prev-file
#env
LESS = iMRj5X

Uruchom, lesskeyaby „skompilować” go do pliku ~/.less.

Prawdopodobnie miało to znaczenie ponad 20 lat temu, ale lessodczytuje ten plik binarny zamiast analizować tekstowy plik konfiguracyjny za każdym razem, gdy się uruchamia.


@ Dan: Dodano wiersz u góry, aby ta odpowiedź mogła sama stać się odpowiedzią na pytanie. Pomyślałem, że pozostawienie tej części domniemanej byłoby wystarczające, biorąc pod uwagę inną odpowiedź, ale jeśli nie mam nic przeciwko temu, aby wyrazić to jasno, jeśli przeszkadza.
Peter Cordes,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.