A Book to Help Learn and Master sed
Definitive Guide to sed
by Daniel A. Goldman
Table of Contents

1: Introduction to sed
    sed is a 'Stream Editor'
    PatSpace and HoldSpace
    Introducing the s Command
    Quoting Command-Line Scripts
    Inputs for Book Examples
2: sed s (substitute) Command
    Delimiter for s Command
    sed Input from File or stdin
    sed Command Line Options
    -e sed Command Line Option
    ;  sed Command Line Syntax
    -f sed Command Line Option
    sed Output to File or stdout
    -i sed Command Line Option
3: Flags for s (substitute) Command
    i (ignore case) Flag
    g (global) and n (number) Flags
    -n sed Command Line Option
    p (print) and w (write) Flags
    e (execute) and m (multi) Flags
    Combining s Command Flags
4: Single Character MetaChars
    Literal Character in RegEx
    .  (Dot) Wildcard Character)
    \  (Specify Literal Character)
    [   ]  (Character Set)
    \w   \W  (Word and Non-Word)
    [:   :]  (Posix Character Class)
5: Anchor MetaChars
    ^  (Start of PatSpace)
    $  (End of PatSpace)
    \<   \>   \b  (Word Boundaries)
    \B  (Not a Word Boundary)
6: Simple Repetition MetaChars
    *  (0 or More of Previous)
    \+  (1 or More of Previous)
    -r sed Command Line Option
    \?  (0 or 1 of Previous)
    *   \+   \?  Compared
7: General Repetition MetaChars
    \{N\}  (Exact N of Previous)
    \{L,\}  (Low, Higher of Previous)
    \{L,H\}  (Low, High of Previous)
8: Other RegEx MetaChars
    \|  (Alternative Patterns)
    \(   \)  (Grouping and Saving)
    \`  (Always Start of PatSpace)
    \'  (Always End of PatSpace)
9: SubEx MetaChars
    &  (Entire Matched Portion)
    \N BackRef  (Play Saved Group)
    \l   \u  (Case for Next Character)
    \L   \U   \E  (Case for Next Span)
10: Command Addresses
    Address Omitted
    N Format Address
    L,H Format Address
    /RegEx/ Format Address
    /RegEx/,/RegEx/ Address
    L,/RegEx/ Format Address
    /RegEx/,+N Format Address
    /RegEx/,~N Format Address
    First~Step Address
    !  (Inverts Address Match)
11: Delete PatSpace Content - dD
    sed d Command (delete)
    sed D Command (Delete)
12: Append, Insert, Change - aic
    sed a Command (append)
    sed i Command (insert)
    sed c Command (change)
    aic Syntax Alternatives
    Cannot Edit a, i, c Results
13: Print PatSpace - pP l
    sed p Command (print)
    sed P Command (Print)
    sed l Command (display line)
14: Read / Write File - rR wW
    sed r Command (read Rfile)
    sed R Command (Read Rfile)
    sed w Command (write Wfile)
    sed W Command (Write Wfile)
15: Read Line into PatSpace - nN
    sed n Command (next line)
    sed N Command (Next Line)
16: Access HoldSpace - hH gG x
    sed h Command (hold)
    sed H Command (Hold)
    sed g Command (get)
    sed G Command (Get)
    sed x Command (exchange)
    Examples using HoldSpace
17: Branch / Quit - : btT / qQ
    sed : (Label, eg :k)
    sed b Command (branch)
    sed t Command (test)
    sed T Command (Test)
    Branching Examples
    sed q Command (quit)
    sed Q Command (Quit)
18: Other Actions - { } # eyvz =
    sed { } (grouping)
    sed # (comment marker)
    sed e Command (execute)
    sed y Command (transliterate)
    sed v Command (version)
    sed z Command (zap)
    sed = Command (line #)
19: General Advice about sed
    When to Use (or not Use) sed
    Quoting Command-Line Scripts
    Using sed within Shell Scripts
    Testing sed Scripts
    Structuring Input Files
20: Examples - Substitution
    Do a Simple Substitution
    Add Leader at Line Start
    Substitute for a Span
    Delete Space at Line Start
    Delete Space at Line End
    Substitute only for a Word
    Substitute for One or More (+)
    Substitute up to Something
    Substitute on Certain Lines
    Replace with Entire Match
    Replace All or Just One
21: Examples - Line Spacing
    Double Space a Stream
    Triple Space a Stream
    Squeeze Blank Lines to One
22: Examples - Add Some Lines
    Add Line Before Lines 1, 3, ...
    Add Line After Lines 2, 3, ...
    Add Line Before Matching Line
    Add Line After Matching Line
    Add Line Before & After Line
23: Examples - Print Some Lines
    Print Line #X
    Print Last Line
    Print Lines L to H
    Print First X Lines
    Print Last X Lines
    Print Lines 4, 8, ...
    Print Matching Line
    Print Line Before Match
    Print Line After Match
    Number Lines in Stream
24: Examples - Delete Some Lines
    Delete Line #X
    Delete Last Line
    Delete Lines L to H
    Delete First X Lines
    Delete Last X Lines
    Delete Lines 1, 3, ...
    Delete All Blank Lines
    Delete Leading Blank Lines
    Delete Up to Blank Line #1
    Delete Match-Based Range
    Delete Following Matched Line
    Delete Serial Duplicate Lines
25: Examples - Other Short Tasks
    Count Lines in Stream
    Delete Duplicate Characters
    Format a Phone Number
    Replace First Match in File
    Reverse Each Word
    Reverse Each Line
    Capitalize Words
    Reverse Order of Lines
    Add Commas to Numbers
26: Examples - Complex Tasks
    Add Headers and Footers
    Multi-Line Find and Replace
    Set Incremental Macro Values
    Delete HTML Tags
27: Related Unix Commands - grep
    grep Usage
    grep Command Line Options
28: Other Related Commands - 1/2
    head - Print First Part of File
    tail - Print Last Part of File
    uniq - Handle Repeated Lines
    tr - Translate Characters
29: Other Related Commands - 2/2
    expr - Evaluate an Expression
    seq - Print Number Sequence
30: Definitions of Special Terms
31: sed Command Line Reference
32: sed Command Reference
33: s Command Flag Reference
34: Address & Regex Reference
35: Related Books and Web Sites

Learn sed - Home Page   |   sed Book - Corrections