Wie kann man mit "cat" den Anfang einer sehr langen Datei sehen?

18

Ich würde gerne wissen, wie es geht

cat my-verylong-file

und zeigen Sie es von oben statt am Ende. Wie der Mann Befehl tut.

IDK
quelle
5
Der Vollständigkeit halber gibt es auch das moreKommando ... aber da morees weniger fähig ist als less, ist es sehr richtig, dass "weniger mehr ist". Endlich gibt es auch noch pgfür "Seite". Sie können diese Befehle auch mit Pipes verwenden - z. ls -l | lesseine sehr lange Dateiliste in mehrere Seiten aufteilen. Und du könntest es sogar gebrauchen cat my-verylong-file | less.
Baard Kopperud
Erwähnenswert ist auch, dass "Standardmäßig verwendet man / usr / bin / less -is." (von man man).
Digital Trauma

Antworten:

43

Verwendung less, die die Datei von oben zeigen, so dass Sie durch sie bewegen, so wie man:

less my-verylong-file
  • Drücken Sie, qum das Menü zu verlassen.

Wenn Sie nur die n ersten Zeilen einer Datei sehen möchten, ist dies headmöglicherweise eine Alternative:

head -n 25 filename

zeigt die 25 ersten Zeilen der Datei.

Gleiches gilt für die n letzten Zeilen einer Datei mit tail:

tail -n 25 filename
vidarlo
quelle
2
lesskönnte auch verwendet werden, um sehr lange Ausgaben von Befehlen zu scrollen. Hier ist ein Beispiel dargestellt: ls -laR --color=always ~/ | less -R.
pa4080
2
Und der Befehlsname "less" ist ein Wortspiel auf den Befehlsnamen "more" (den er mehr oder weniger ersetzt), der wiederum von der "--More" -Aufforderung, die er gab, benannt wurde. Unter MacOS sieht es so aus, als wäre mehr die gleiche Binärdatei wie weniger, sodass die Metamorphose vollständig ist :)
Thorbjørn Ravn Andersen
5
Also mehr oder weniger dasselbe?
Ryan The Leach
1
@ pa4080: Sie können festlegen, lessdass dies -Rstandardmäßig aktiviert ist. Siehe meine Antwort.
Peter Cordes
@ RyanTheLeach more und less : das gleiche :)
Chepner
11

manwird standardmäßig less(1)als Pager verwendet. Verwenden Sie es anstelle von cat. Siehe auch die Antwort von @ vidarlo .

So passen Sie es lessan, damit es noch besser wird:

Ich mag es alias m=less, also ist es nur ein Einzelbuchstabenbefehl, weil ich es die ganze Zeit tippe. Wenn Sie ein |mam Ende von etwas setzen, wird es in einen Pager geleitet.

Sie könnten Optionen wie -iMRj5Xin den Alias ​​(zB alias m='less -iMRX) einfügen , aber ich mache das mit meiner ~/.lesskeyDatei. (Siehe lesskey(1)).

  • -i: Bei Suchanfragen wird die Groß- / Kleinschreibung nicht berücksichtigt (es sei denn, Sie verwenden Großbuchstaben)
  • -M: längere Statuszeile mit Zeilennummer und Dateiprozentsatz
  • -R: lassen Sie einige Steuercodes durch, damit Sie kolorierte Befehle in weniger umleiten können.
  • -X: Schalten Sie nicht auf den „alternativen“ Bildschirm des Terminal - Emulator, was auch immer so suchen Sie noch da , wenn man sein quit von out less. (Ideal für Manpages, wenn Sie die gewünschte Option gefunden haben und sie sich während der Eingabe ansehen möchten.)
  • -j5: Suchen setzen Sie die Zielzeile in Zeile 5 anstelle des oberen Bildschirmrandes. So können Sie den Kontext auf beiden Seiten Ihres Suchergebnisses sehen. (Manchmal ändere ich dies interaktiv, indem ich -j40etwas eingebe oder etwas drin less, wenn es am nützlichsten ist, den Kontext vor einem Suchtreffer zu sehen.)

Ich binde auch .an next-fileund ,an prev-file, weil die Standardbindungen zwei separate Zeichen sind, die viel langsamer zu tippen sind: :nund :p.


Das ist mein .lesskey:

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

Führen Sie es aus lesskey, um es in eine zu "kompilieren" ~/.less.

Dies war wahrscheinlich vor mehr als 20 Jahren wichtig, lessliest aber diese Binärdatei, anstatt bei jedem Start eine Textkonfigurationsdatei zu analysieren.

Peter Cordes
quelle
@Dan: Oben wurde eine Zeile hinzugefügt, damit diese Antwort als Antwort auf die Frage für sich allein stehen kann. Ich dachte, dass es bei der anderen Antwort ausreichen würde, diesen Teil implizit zu lassen, aber wenn ich nichts dagegen habe, ihn explizit zu formulieren, wenn es Sie stört.
Peter Cordes