Könnte weniger den angezeigten Anteil der Textdatei anzeigen?

18

Wie der Titel andeutet, möchte ich beim Durchsuchen der Textdatei den aktuell angezeigten Teil der gesamten Textdatei erfahren.

Ich weiß, dass wir mit der Option -N die Zeilennummern einschalten könnten, aber wie kann ich die Zeilennummer der gesamten Textdatei weniger anzeigen lassen?

Vielen Dank.

Jichao
quelle

Antworten:

19

Wenn Sie eine Datei mit weniger öffnen, werden durch Drücken von Strg-g die aktuelle Zeilennummer, die Gesamtzahl der Zeilen und der Prozentsatz wie folgt angezeigt:

Zeilen 51-100 / 185 Byte 3228/5886 54% (drücken Sie die EINGABETASTE)

secureBadshah
quelle
1
Nachdem Sie die Manpage erneut besucht haben, können Sie sie finden und die anderen beiden gleichen Befehle ': f' und '=' abrufen.
Jichao,
1
Leider funktioniert es nicht über Pipes, auch nicht mit den Parametern -M oder -m aus der anderen Antwort. Zum Beispiel wdiff version1.txt version2.txt | colordiff | less -RMzeigt nicht den Prozentsatz. Lassen Sie mich wissen, ob jemand eine Lösung oder eine Problemumgehung dafür hat. Update: Die Lösung besteht darin, + Gg hinzuzufügen, wie eine andere Antwort erklärt.
Taufe
18

Meinst du wie mit dem -MSchalter?

Teddy
quelle
Das ist genau was ich will!
Jichao,
Oder -mwenn keine Zeilennummer benötigt wird.
Franklin Yu
1
Haben Sie eine Idee, ob es eine Lösung oder eine Problemumgehung gibt, um den Prozentsatz bei der Verwendung von Rohren anzuzeigen? Zum Beispiel kann ich den Prozentsatz für ein farbiges Diff mit diesem Befehl nicht sehen: wdiff version1.txt version2.txt | colordiff | less -RMUpdate: Die Lösung besteht darin, + Gg hinzuzufügen, wie eine andere Antwort erklärt.
Taufe
6

less -M +Gg

Für nicht sehr große Dateien ist es in Ordnung, weil +G( GBefehl) bis zum Ende der Datei geht

ALZ
quelle
1
Trotzdem großartig $MANPAGER! Sehen man man.
Tom Hale
Großartig auch für colordiff! ZB:wdiff version1.txt version2.txt | colordiff | less -RM +Gg
Taufe
4

Nur ein bisschen auf die vorherigen Antworten erweitern. Befehlszeile:

less -M +Gg

macht folgendes:

-M Aktuelle Position in der Datei an der Eingabeaufforderung anzeigen + Gg Befehle ausführen G(zum Ende der Datei gehen) und g(zum Anfang der Datei zurückgehen)

Wenn lessvon stdin gelesen wird, was passiert, wenn maneine Manpage angezeigt wird, kennt es die Gesamtanzahl der Zeilen in der Datei nicht im Voraus, so dass es seine Position richtig berechnen kann. Daher +Ggist es notwendig, lessdamit die Gesamtzahl der Zeilen abgerufen und damit die aktuelle Position als Prozentsatz berechnet werden kann.

Ich fand es nützlich, diese Variablen in ~ / .bashrc zu setzen :

export LESS+='-M'
export MANPAGER='less +Gg'

LESSstellt sicher, dass bei allen Aufrufen von lessdie aktuelle Position in der Eingabeaufforderung angezeigt wird, und stellt MANPAGERsicher, dass lessdie Gesamtanzahl der Zeilen in der Manpage lessabgerufen werden kann , die dann in der Eingabeaufforderung angezeigt wird. Es schien sinnvoller zu sein , nicht enthält +Ggin LESSzu verhindern , lessvon dem Versuch , bis zum Ende des potenziell großen verrohrt Eingangs zu gehen. Wenn es nötig ist, kann man die Befehle immer Gund gmanuell ausführen .

Paulo Marcel Coelho Aragão
quelle
+1 für den manuellen Weg, drücken SieGg
wisbucky
Warum setzen Sie in Ihrem Beispiel ein Pluszeichen "WENIGER +"? Sollte es nicht ausreichen, einfach "export LESS = 'M'" zu schreiben?
db
@db, WENIGER + = '- M' fügt Option -M an die zuvor für WENIGER festgelegten Optionen an
Paulo Marcel Coelho Aragão,