12

I open a big file with this command: less +G /var/log/blah/file.log

Now when I find the desired info I'd like to know its exact offset in this file, so later I can open that file again and return to that exact place.

So there is the "%X" command which will take me to % inside the file, in offset terms (and not lines!). It's fine, but I'd really love to be able to move to exact, numeric, offset in the file.

What is the command to get the current offset?
And what is the command to move to a specific offset?

And if I'm at that already, how do I get the current offset in percent? (to be used with the "%" command).

Note that I know of marks. They aren't what I'm looking for.

Poni
  • 553
  • 1
  • 5
  • 14

3 Answers3

22

Got part of my question from here:

100g to go to the 100th line
50p to go to 50% into the file
100P to go to the line containing 100th byte

To determine the current line number or byte offset, use Ctrl+g.

Miles
  • 445
Poni
  • 553
  • 1
  • 5
  • 14
0

With my version the lines currently on screen are displayed at the bottom.

To go to a specific line you can type <number>G.

0

Assuming that by 'offset' you mean byte-offset (as opposed to characters), you can use the vi editor and search for the pattern with

/pattern

hit Enter. Repeated fwd searching for the same pattern can be repeated with

/

hit Enter.

Cursor position's line and column numbers are displayed at bottom right, so to go to a particular line, say 201, and column, say 17, you type

201G17l

That's 201, capital G, 17, lowercase l

If your file consists of only 1 line with your pattern at offset 10125, then open it with vi

$ vi my_massive_file

and type

:goto 10125
venzen
  • 329