852

What is the command to make less display line numbers in the left column?

3
  • 101
    less is a linux command line utility, and is very commonly used by programmers to view text files. This question is solidly on-topic for Stack Overflow under the domain of "tools used by programmers" just as all questions relating to using git are on-topic. It is also the first hit in Google when searching for "less show line numbers." This question should not be closed. Commented Jun 7, 2013 at 11:37
  • 5
    @JohnDibling The question is more appropriate for Unix & Linux Stack Exchange. Just because less is used by programmers does not make it on topic. Pencils are "tools used by programmers" too but a question about how to sharpen a pencil would not be appropriate here. Commented Feb 18, 2015 at 0:01
  • 29
    @augurar I think you DO know that tools here means software tools. You are deliberately interpreting the meaning of tools out of the context. By the way, I think as well that this question is appropriate for Unix & Linux Stack Exchange, but it does not prevent this question to be here on SO :) Commented Apr 26, 2016 at 16:53

7 Answers 7

1223

From the manual:

-N or --LINE-NUMBERS Causes a line number to be displayed at the beginning of each line in the display.

You can also toggle line numbers without quitting less by typing -N.

It is possible to toggle any of less's command line options in this way.

Sign up to request clarification or add additional context in comments.

6 Comments

When I less a huge file then "G" to the bottom, it says "Calculating line numbers... (interrupt to abort)" even though it is not displaying line numbers. I'd like to know how to find out what line I'm on without exiting and relaunching with -N. I'm suffering the penalty. Where's the reward?
Hit ENTER/RETURN if you're trying to toggle. After typing -n or -N while using less, you may also need to hit that afterwards to put the changes into effect. It even says so at the bottom, but my brain didn't connect the dots because I assumed it would be instantaneous and I kept typing -N and was wondering why the numbers never showed up.
Note that less -N <filename> works but not less <filename> -N.
YES!! FYI: If you use -h from within less as guidance, it will lead you astray. It lists -n and -N as equivalent, but they are not. -N works, -n doesn't. Is this a bug - or am I missing something?
@BrunoBronosky You can hit the = key at any time while in less, it will show you the line range currently being displayed plus the total size (available for files, not streams) like this at the bottom: "Filename.txt lines 1-50/300 byte 4021/26976 15% (press RETURN)"
|
172

You can also press = while less is open to just display (at the bottom of the screen) information about the current screen, including line numbers, with format:

myfile.txt lines 20530-20585/1816468 byte 1098945/116097872 1%  (press RETURN)

So here for example, the screen was currently showing lines 20530-20585, and the files has a total of 1816468 lines.

1 Comment

Besides lines, the current bytes and total bytes are presented towards the end of the display separated by /. Last number is the percentage current/total lines/bytes.
50

You could filter the file through cat -n before piping to less:

cat -n file.txt | less

Or, if your version of less supports it, the -N option:

less -N file.txt

2 Comments

Which version(s) of less are you aware of that do(es) not support it?
I usually use nl instead of cat -n
41

You can set an environment variable to always have these options apply to all files opened in less:

export LESS='-RS#3NM~g'

The options are:

  • R — better handling of raw color codes in files
  • S — scroll long lines off the screen instead of word wrap
  • #3 — scroll right / left by 3 positions at a time
  • N — show line numbers
  • M — longer prompts
  • ~ — instead of displaying empty space after a file ends with ~, display nothing for blank space
  • g — when doing a search with 'g', only highlight the current match instead of all matches

5 Comments

Line alias less="LESS='-RS#3NM~g' less" in .bashrc did my day! Thanks!
An explanation of this incantation would be very much welcome :)
The options are: R = better handling of raw color codes in files. S = Scroll long lines off the screen instead of word wrap. #3 = scroll right/left by 3 positions at a time. N = show line numbers. M = Longer prompts. ~ = Instead of displaying empty space after a file ends with ~, display nothing for blank space. g = when doing a search with 'g', only highlight the current match instead of all matches.
This also assigns line number to man is it possible to prevent it and keep it only for files?
I guess by aliasing the commands that have the trouble, or more simply less to set the variable only for each of its invocations.
40

The command line flags -N or --LINE-NUMBERS causes a line number to be displayed at the beginning of each line in the display.

You can also toggle line numbers without quitting less by typing -N<return>. It it possible to toggle any of less's command line options in this way.

1 Comment

Passing -N or --LINE-NUMBERS only shows the date for me in CentOS 5.3. However using -N after starting less works fine.
25

If you hit = and expect to see line numbers, but only see byte counts, then line numbers are turned off. Hit -n to turn them on, and make sure $LESS doesn't include 'n'.

Turning off line numbers by default (for example, setting LESS=n) speeds up searches in very large files. It is handy if you frequently search through big files, but don't usually care which line you're on.

I typically run with LESS=RSXin (escape codes enabled, long lines chopped, don't clear the screen on exit, ignore case on all lower case searches, and no line number counting by default) and only use -n or -S from inside less as needed.

Comments

3

the above answers shows how to initiate a less with line numbers enabled, but for those who want to know how to toggle line numbering ON and OFF in the file already being viewed with less

Inside the Viewer You can also toggle the line numbers from inside the less viewer, as you are viewing the file content. This is useful if you are already inside the viewer or if you want to remove the line number display. As with most command line options of less, you can also use it from with in the viewer…

When the file content is being displayed, just type -N using the keyboard and followed by Enter to display line numbers. You can hide the line numbers by typing -N (or -n) again followed by Enter from with in the viewer. This is a quick way to toggle line numbers and much more convenient than the command line option

Courtesy: lostsaloon

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.