Tutorials

Add Line Numbers to Text: Simple Guide

Learn how to add line numbers to text for code review, document reference, and educational materials with our simple online tool.

7 min read

Line numbers make text easier to reference, discuss, and navigate. Whether preparing code for review, creating legal documents, or building study materials, understanding how to add and format line numbers helps you create professional, referenceable content. The Add Line Numbers tool numbers your text instantly with various formatting options.

What Are Line Numbers?

Line numbers are sequential identifiers added to the beginning of each line in a document. They transform unstructured text into easily referenceable content. Instead of saying "somewhere in the middle of page 3," you can say "see line 42" for precise communication.

Line numbers have been used since the earliest days of computing when punch cards needed sequential identification. Today they are essential in programming, legal documents, education, and scriptwriting.

Modern line numbering systems offer various formats including simple sequential numbers, padded numbers for alignment, and decorated numbers with separators.

Why Add Line Numbers?

Line numbers serve important purposes across many fields:

  • Code review: Reference specific lines during discussions and pull request comments
  • Legal documents: Required for court filings, depositions, and legal transcripts
  • Education: Help students cite specific text passages in literary analysis
  • Collaboration: Clear references improve communication in document feedback
  • Debugging: Error messages reference line numbers to locate problems
  • Script production: Film and theater crews reference line numbers for blocking
  • Technical documentation: Readers can reference specific code examples

Common Use Cases

Code Documentation and Tutorials

Include numbered code in documentation so readers can follow explanations referencing specific lines. A technical writer creating an API tutorial numbered code examples so instructions like "modify line 15 to include your API key" were unambiguous. Without line numbers, readers would have to count lines manually, leading to errors.

Legal Pleadings and Court Documents

Court documents in many jurisdictions require numbered lines. Legal formatting typically uses 25-28 lines per page with specific margins. A legal assistant preparing deposition transcripts used consistent line numbering so attorneys could reference specific testimony: "Please direct your attention to page 47, lines 12 through 18."

Scripts and Screenplays

Production scripts include line numbers for coordinating scenes during filming. Directors, actors, and crew reference specific lines for blocking, lighting cues, and performance notes. When a director says "let's run lines 45 through 60," everyone is on the same page.

Poetry Analysis and Literary Criticism

Line numbers in poetry help cite specific verses in literary analysis. Academic papers referencing poems use line numbers: "In line 14, Shakespeare employs iambic pentameter to emphasize..." Without standardized line numbers, readers using different editions could not verify citations.

Code Review in Version Control

When reviewing pull requests or patches, line numbers are essential. A senior developer reviewing a code change can write "Line 127: This variable should be const, not let" and the author knows exactly where to look.

Line Number Formatting Options

Simple Numbers

1 First line of text
2 Second line of text
3 Third line of text

Best for: Short documents, informal use, quick reference.

Padded Numbers (Zero-Padded)

001 First line of text
002 Second line of text
003 Third line of text

Best for: Documents over 100 lines where alignment matters.

Numbers with Separator

1: First line of text
2: Second line of text
3: Third line of text

Best for: Distinguishing line numbers from content that starts with numbers.

Right-Aligned Numbers with Delimiter

  1 | First line
  2 | Second line
100 | Hundredth line

Best for: Code documentation, large documents, professional formatting.

Tab-Separated Numbers

1	First line of text
2	Second line of text
3	Third line of text

Best for: Data that will be imported into spreadsheets.

Adding Line Numbers in Applications

Text Editors and IDEs

Most code editors (VS Code, Sublime Text, Vim, Emacs) display line numbers in the gutter. This is display-only and does not add numbers to the text itself. To export with line numbers, you typically need a plugin or external tool.

Word Processors

  • Microsoft Word: Layout > Line Numbers > Continuous (or restart each page/section)
  • LibreOffice Writer: Tools > Line Numbering
  • Google Docs: Does not have built-in line numbering; use add-ons or copy to Word

Command Line Tools

# Linux/Mac: nl (number lines)
nl filename.txt                    # Basic numbering (skips blank lines)
nl -ba filename.txt                # Number all lines including blank
nl -w3 -s': ' filename.txt        # Width 3, colon separator

# Using cat with -n flag
cat -n filename.txt                # Number all lines

# Using awk for custom formatting
awk '{print NR": "$0}' filename.txt    # Number: content format
awk '{printf "%03d %s\n", NR, $0}' filename.txt  # Zero-padded

Adding Line Numbers with Code

Here are examples of adding line numbers programmatically:

JavaScript

// Basic line numbering
function addLineNumbers(text, startAt = 1) {
    return text.split('\n')
        .map((line, i) => `${i + startAt} ${line}`)
        .join('\n');
}

// With padding and custom separator
function addFormattedLineNumbers(text, options = {}) {
    const { start = 1, separator = ' ', padWidth = 0 } = options;
    const lines = text.split('\n');
    return lines.map((line, i) => {
        const num = (i + start).toString().padStart(padWidth, '0');
        return `${num}${separator}${line}`;
    }).join('\n');
}

// Usage
addFormattedLineNumbers(text, { separator: ': ', padWidth: 3 });

Python

def add_line_numbers(text, start=1, separator=' ', pad_width=0):
    """Add line numbers with optional formatting."""
    lines = text.split('\n')
    numbered = []
    for i, line in enumerate(lines, start=start):
        num = str(i).zfill(pad_width) if pad_width else str(i)
        numbered.append(f'{num}{separator}{line}')
    return '\n'.join(numbered)

# Usage
add_line_numbers(text, separator=': ', pad_width=3)

PHP

function addLineNumbers($text, $start = 1, $separator = ' ', $padWidth = 0) {
    $lines = explode("\n", $text);
    $result = [];
    foreach ($lines as $i => $line) {
        $num = $padWidth ? str_pad($i + $start, $padWidth, '0', STR_PAD_LEFT) : ($i + $start);
        $result[] = $num . $separator . $line;
    }
    return implode("\n", $result);
}

Advanced Techniques

Numbering Only Non-Empty Lines

Sometimes you want to skip blank lines while maintaining the visual structure:

# Shell: Number non-blank lines only
nl -b t filename.txt

# Python
def number_non_empty(text, start=1):
    lines = text.split('\n')
    result = []
    num = start
    for line in lines:
        if line.strip():
            result.append(f'{num} {line}')
            num += 1
        else:
            result.append(line)
    return '\n'.join(result)

Continuing Numbering Across Multiple Documents

When splitting a document across multiple files, continue numbering from where the previous file ended:

# Get line count of first file
START=$(wc -l < file1.txt)
# Number second file starting after first
nl -v $((START + 1)) file2.txt

Adding Line Numbers to Specific Sections

Number only code blocks within a larger document while leaving prose unnumbered. This requires parsing the document structure and selectively numbering.

Common Mistakes to Avoid

These errors frequently cause line numbering problems:

  • Inconsistent formatting: Using different number formats in different parts of a document confuses readers. Pick one format and stick with it.
  • Not accounting for blank lines: Decide upfront whether blank lines should be numbered. Changing mid-document creates confusion.
  • Insufficient padding: A 500-line document needs at least 3-digit padding. Numbers like "1" and "500" misalign without padding.
  • Forgetting about modifications: If numbered content will be edited, line numbers may become outdated. Consider generating numbers only for final versions.
  • Mixing editor-displayed and embedded numbers: Some confusion comes from thinking editor gutter numbers are in the file. They are display-only.

Removing Line Numbers

If you need to remove line numbers later, use regex patterns:

# Remove numbers followed by space or colon
Pattern: ^\d+[:\s]+
Replace: (empty)

# Remove padded numbers with pipe separator
Pattern: ^\s*\d+\s*\|\s*
Replace: (empty)

# Python: Remove common line number formats
import re
text = re.sub(r'^\s*\d+[:\s|]+', '', text, flags=re.MULTILINE)

Best Practices

Keep these considerations in mind when adding line numbers:

  • Starting number: Usually 1, but continue from previous sections when documents are split
  • Blank lines: Decide upfront whether to number or skip empty lines
  • Number width: For 100+ lines, use padding for alignment (001, 002)
  • Separator style: Choose separators (space, colon, pipe) that match your document style
  • Consistency: Use the same format throughout a document or project
  • Regenerate when needed: For edited documents, regenerate line numbers before final distribution

Related Tools

Enhance your document preparation with these tools:

Conclusion

Line numbers transform unstructured text into referenceable documents essential for collaboration, legal compliance, and professional communication. Understanding the different formatting options, when to number blank lines, and how to maintain consistency helps you create documents that are easy to discuss and cite. The Add Line Numbers tool handles any text length with customizable formatting, making it simple to prepare numbered documents for code review, legal filings, or study materials.

Found this helpful?

Share it with your friends and colleagues

Written by

Admin

Contributing writer at TextTools.cc, sharing tips and guides for text manipulation and productivity.

Cookie Preferences

We use cookies to enhance your experience. By continuing to visit this site you agree to our use of cookies.

Cookie Preferences

Manage your cookie settings

Essential Cookies
Always Active

These cookies are necessary for the website to function and cannot be switched off. They are usually set in response to actions made by you such as setting your privacy preferences or logging in.

Functional Cookies

These cookies enable enhanced functionality and personalization, such as remembering your preferences, theme settings, and form data.

Analytics Cookies

These cookies allow us to count visits and traffic sources so we can measure and improve site performance. All data is aggregated and anonymous.

Google Analytics _ga, _gid

Learn more about our Cookie Policy