Ben's

nl 본문

리눅스/bash

nl

Ben Ko (SINCE 2013) 2013. 4. 3. 11:34
728x90

http://www.thegeekstuff.com/2013/02/wc-nl-examples/

 

How to Count Number of Lines in a File in Linux (wc and nl Command Examples)

 

Linux commands wc and nl will help you to identify the number of words, lines, bytes, etc, in a file. This tutorial explains how to use these two very useful command with various examples.

The basic text file that will be used in examples throughout this article is shown below :

$ cat sort.txt
UK
Australia
Newzealand
Brazil
America

Linux nl Command Examples

The nl utility in Linux is used to number lines of a file.

Here is the syntax and description from man page :

SYNOPSIS
nl [OPTION]… [FILE]…

DESCRIPTION
Write each FILE to standard output, with line numbers added. With no FILE, or when FILE is -, read standard input.

1. A basic example

Here is a basic example that explains how nl command can be used to number lines of a file.

$ cat sort.txt
UK
Australia
Newzealand
Brazil
America

$ nl sort.txt
     1	UK
     2	Australia
     3	Newzealand
     4	Brazil
     5	America

So we see that using nl command, all the lines of file sort.txt got numbered.

2. Increment line numbers with any value using -i option

The option -i can be used to override the default increment of 1 in line numbers.

Here is an example where we have used -i to increase the line number increment to 5 :

$ nl -i5 sort.txt
     1	UK
     6	Australia
    11	Newzealand
    16	Brazil
    21	America

Instead of the default 1,2,3… the line numbers are now displayed in increments of 5 (i.e 1,6,11…)

3. Add string after line numbers using -s option

By default, the nl command adds only line numbers. But, through -s option, any string can be added that can act as a separator between line numbers and the line text.

Here is an example:

$ nl -s. sort.txt
     1.UK
     2.Australia
     3.Newzealand
     4.Brazil
     5.America

So we see that the character ‘.’ was added after line numbers.

4. Use a different column for line numbers using -w option

Columns for line number display can be changed using -w option.

Here is an example :

$ nl -w1 sort.txt
1	UK
2	Australia
3	Newzealand
4	Brazil
5	America

$ nl -w2 sort.txt
 1	UK
 2	Australia
 3	Newzealand
 4	Brazil
 5	America

$ nl -w3 sort.txt
  1	UK
  2	Australia
  3	Newzealand
  4	Brazil
  5	America

$ nl -w4 sort.txt
   1	UK
   2	Australia
   3	Newzealand
   4	Brazil
   5	America

$ nl -w5 sort.txt
    1	UK
    2	Australia
    3	Newzealand
    4	Brazil
    5	America

$ nl -w6 sort.txt
     1	UK
     2	Australia
     3	Newzealand
     4	Brazil
     5	America

The exhaustive output above gives a good idea as to how the display column for line numbers can be changed.

5. Use STYLE for numbering lines using -b option

Various STYLEs are available for line numbering. From the man page :

STYLE is one of:

  • a – number all lines
  • t – number only nonempty lines
  • n – number no lines
  • pBRE – number only lines that contain a match for the basic regular expression, BRE

In the example below, I have used a regular expression ‘pA’ as a STYLE with option -b. This regular expression matches the lines beginning with ‘A’ and so nl command numbers only those lines.

$ nl -bpA sort.txt
       UK
     1	Australia
       Newzealand
       Brazil
     2	America

So we see that only the lines beginning with ‘A’ were numbered.

6. Use different FORMAT for inserting line numbers using -n options

There are various FORMATs available for inserting line numbers. From the man page :

FORMAT is one of:

  • ln – left justified, no leading zeros
  • rn – right justified, no leading zeros
  • rz – right justified, leading zeros

Here is an example that demonstrated all the above formats:

$ nl -nln sort.txt
1     	UK
2     	Australia
3     	Newzealand
4     	Brazil
5     	America

$ nl -nrn sort.txt
     1	UK
     2	Australia
     3	Newzealand
     4	Brazil
     5	America

$ nl -nrz sort.txt
000001	UK
000002	Australia
000003	Newzealand
000004	Brazil
000005	America

Please note that you can also use sed command to count the number of lines in a file.