"Less" (Linux) get / go-to-X-Offset in der Datei


8

Ich öffne eine große Datei mit diesem Befehl: less + G /var/log/blah/file.log

Wenn ich nun die gewünschten Informationen finde, möchte ich den genauen Versatz in dieser Datei erfahren, damit ich diese Datei später wieder öffnen und an genau diese Stelle zurückkehren kann.

Es gibt also den Befehl "% X", der mich in% innerhalb der Datei versetzt versetzt (und nicht in Zeilen!). Es ist in Ordnung, aber ich würde wirklich gerne in der Lage sein, in der Datei zu einem exakten, numerischen Versatz zu wechseln.

Was ist der Befehl, um den aktuellen Offset zu erhalten?
Und was ist der Befehl, um zu einem bestimmten Versatz zu wechseln?

Und wenn ich schon dabei bin, wie bekomme ich den aktuellen Offset in Prozent? (zur Verwendung mit dem Befehl "%").

Beachten Sie, dass ich Marken kenne. Sie sind nicht das, wonach ich suche.

Antworten:


16

Habe einen Teil meiner Frage von hier :

100 g , um zur 100. Zeile zu gelangen
50p , um zu 50% in die Datei
100P zu gelangen, um zur Zeile mit dem 100. Byte zu gelangen

Verwenden Sie Ctrl+, um die aktuelle Zeilennummer oder den Byte-Offset zu ermitteln g.


3
Gefunden: Strg + g!
Poni

Für sehr große Dateien, können Sie auch aufrufen wollen lessmit der -nBerechnung von Zeilennummern zu vermeiden.
Meilen

Die Frage betraf den Versatz (Spalte innerhalb einer Zeile), aber Sie gaben eine Antwort, wie Sie zu einer bestimmten Zeile gehen, ohne tatsächlich zu sagen, wie ein Versatz innerhalb der Zeile verschoben werden soll. So, jetzt haben wir 2 Fragen bei Superuser ungefähr gleich mit gleichen Antworten: /
Stalinko

0

Bei meiner Version werden die aktuell auf dem Bildschirm angezeigten Zeilen unten angezeigt.

Um zu einer bestimmten Zeile zu gelangen, können Sie Folgendes eingeben <number>G.


Da die Datei sehr groß ist (mehr als GB), verwende ich nicht einmal Zeilen. Ich muss mich nur mit dem Offset innerhalb der Datei befassen. Vielen Dank Rob
Poni

0

Angenommen, mit "Versatz" meinen Sie den Byte-Versatz (im Gegensatz zu Zeichen), können Sie den vi-Editor verwenden und mit nach dem Muster suchen

/pattern

drücke Enter. Die wiederholte Suche nach demselben Muster kann mit wiederholt werden

/

drücke Enter.

Die Zeilen- und Spaltennummern der Cursorposition werden unten rechts angezeigt. Um zu einer bestimmten Zeile zu gelangen, z. B. 201, und zu einer Spalte, z. B. 17, geben Sie ein

201G17l

Das ist 201, Großbuchstabe G, 17, Kleinbuchstabe l

Wenn Ihre Datei nur aus einer Zeile mit Ihrem Muster am Versatz 10125 besteht, öffnen Sie sie mit vi

$ vi my_massive_file

und Typ

:goto 10125

Ich habe nach dem Posten bemerkt, dass Ihre Datei> 1 GB ist und das ist wahrscheinlich der Grund, warum Sie weniger verwenden. visollte in der Lage sein, damit
umzugehen,

Ja, es öffnet sich mit vi / m viel zu langsam. Nicht gut für mich. Und ja auch zu Ihrer Annahme; Ich meine "Offset" wie in Bytes innerhalb der Datei.
Poni
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.