Linux/Unix: Cat Command Display Line Numbers

Posted on in Categories , , last updated April 27, 2013

How do I use the cat command to display the line numbers for a file called myapp.c under Linux or Unix like operating systems?

You can use the cat command concatenate files and show on the screen under Linux or Unix like operating systems. The cat command also number all output lines starting with number one with the following syntax:

cat -n fileNameHere


cat --number foo.c

The -b / --number-nonblank option number all nonempty output lines, starting with one and the syntax is:

cat -b fileNameHere


cat --number--nonblank filename

Finally, you suppress or remove repeated empty output lines with the -s / --squeeze-blank option:
cat -s -n fileNameHere


cat --squeeze-blank -n filename

Say hello to nl command

Use the nl command number lines of files under Linux or Unix oses. The syntax is:

nl filename


Create a text file called hello.c as follows:

/* Purpose: Sample see program to print Hello world on stdout 
 * Author: nixCraft
 * Copyright: None / Copyleft
/* our main */
int main(void){
	printf("Hello world\n");
	return 0;

Use the cat or nl command to display line numbers:

cat -n hello.c
nl hello.c

Sample outputs:

Fig.01: Displaying line numbers for hello.c using the cat and nl command.
Fig.01: Displaying line numbers for hello.c using the cat and nl command.

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

3 comment

  1. Hi Thanks for sharing … Its of great help …
    And I m a great fan of your … because I found 90% of what i think on cyberciti.

    Just a little correction here in this post ..
    “cat –number–nonblank filename ”
    is giving error
    cat: unrecognized option ‘–number–nonblank’
    Try ‘cat –help’ for more information.

    Just make it
    “cat –number-nonblank filename”
    a single hyphen – after number

  2. The standard output could instead be redirected using a pipe (represented by a vertical bar) to a filter (i.e., a program that transforms data in some meaningful way) for further processing. For example, if the file is too large for all of the text to fit on the monitor screen simultaneously, as is frequently the case, the text will scroll down the screen at high speed and be very difficult to read. This problem is easily solved by piping the output to the filter less, i.e.,

    cat file1 | less

    This allows the user to advance the contents of the file one screenful at a time by pressing the space bar and to move backwards by pressing the b key. The user can exit from less by pressing the q key.

Leave a Comment