nl - Linux
Overview
The nl command in Linux is used to number the lines of files, providing an easy way to add line numbers to text files. This is particularly useful for processing source code or configuration files, where reference to specific lines is often necessary. Whether analyzing log files or coding scripts, nl helps in maintaining clarity and ease of navigation through the document.
Syntax
The basic syntax of the nl command is:
nl [options] [file...]
- [options]: Optional parameters to manipulate how
nlfunctions. - [file…]: One or more files to process. If no file is specified, or if ‘-‘ is used as a file,
nlreads from standard input.
Options/Flags
- -b [style]: Specifies which lines to number.
'a'numbers all lines (default).'t'numbers only non-empty lines.'n'does not number lines (used for headers and footers).
- -n [format]: Specifies the line number format.
'ln'left justified, no leading zeros.'rn'right justified, no leading zeros (default).'rz'right justified, with leading zeros.
- -w [width]: Sets the line number field width to
[width]digits. The default is 6. - -s [separator]: Defines the text that separates line numbers from the text. The default is a tab.
- -v [start_number]: Sets the starting line number (default is 1).
- -i [increment]: Line number increment at each line (default is 1).
- -l [num]: Group of lines counted as a single line (default is 1).
Examples
- Basic Numbering: Add line numbers to all lines in a file.
nl myfile.txt - Numbering Non-empty Lines: Number only non-empty lines.
nl -b t myfile.txt - Custom Separator and Format: Use
:as a separator and zero-padded numbers.nl -w 4 -n rz -s ": " myfile.txt - Combining with Other Commands: Pipe output from another command to number each line.
cat myfile.txt | nl
Common Issues
- Incorrect Line Numbering: When the
-boption isn’t chosen correctly, e.g., numbering empty lines that should be skipped (-b tfor non-empty lines). - Output Formatting: The default width may not accommodate large files, causing unaligned output. Use
-wto increase it.
Integration
nl can be integrated with tools like grep for enhanced text processing:
nl log.txt | grep '404' | nl
This example numbers all lines in log.txt, greps lines containing ‘404’, and numbers the filtered output again.
Related Commands
cat: Used often withnlto display file contents.awk: Can also be used for numbering lines or manipulating text.moreorless: Utilized for paging through numbered text.
For further reading and more detailed information, refer to official GNU documentation or man pages (man nl).