# sed Cheatsheet - Cheatsheets - Launch Pad

__ _______________________ _________._________________________ \_ _____/ \______ \ / _ \ / _____/ / _____/ | | \_ _____/ | __) | _/ / /_\ \ / \ ___ / \ ___ | | | __)_ | \ | | \ / | \ \ \_\ \ \ \_\ \ | |___ | \ \___ / |____|_ / \____|__ / \______ / \______ / |_______ \ /_______ / \/ \/ \/ \/ \/ \/ \/

# sed Cheatsheet

← Back to cheatsheets

← Home

sed (stream editor) is a powerful text processing tool for filtering and transforming text. Edit files non-interactively, perform find-and-replace operations, and manipulate text streams efficiently.

## Basic Usage

- sed 's/old/new/' file - Substitute first occurrence per line

- sed 's/old/new/g' file - Substitute all occurrences

- sed 's/old/new/2' file - Substitute 2nd occurrence

- sed -i 's/old/new/g' file - Edit file in-place

- sed -i.bak 's/old/new/g' file - In-place with backup

## Substitution

- sed 's/pattern/replacement/' - Basic substitution

- sed 's/pattern/replacement/g' - Global substitution

- sed 's/pattern/replacement/i' - Case-insensitive

- sed 's/pattern/replacement/gi' - Global, case-insensitive

- sed 's|old|new|g' - Use different delimiter

- sed 's/old/new/; s/old2/new2/' - Multiple substitutions

## Line Selection

- sed -n '5p' file - Print line 5

- sed -n '5,10p' file - Print lines 5-10

- sed -n '5,$p' file - Print from line 5 to end

- sed -n '/pattern/p' file - Print matching lines

- sed -n '/start/,/end/p' file - Print range between patterns

- sed '5d' file - Delete line 5

- sed '/pattern/d' file - Delete matching lines

## Insertion & Appending

- sed '5i\new line' file - Insert before line 5

- sed '5a\new line' file - Append after line 5

- sed '/pattern/i\new line' file - Insert before match

- sed '/pattern/a\new line' file - Append after match

- sed '$a\new line' file - Append to end

## Advanced Patterns

- sed 's/^old/new/' - Match start of line

- sed 's/old$/new/' - Match end of line

- sed 's/old.*/new/' - Match rest of line

- sed 's/\(.*\)old\(.*\)/\1new\2/' - Capture groups

- sed 's/old/new/; t; s/old2/new2/' - Conditional

- sed -n 's/old/new/p' - Print only modified lines

## Multiple Commands

- sed -e 's/old/new/' -e 's/old2/new2/' file - Multiple expressions

- sed 's/old/new/; s/old2/new2/' file - Semicolon separator

- sed -f script.sed file - Read from script file

## Common Examples

### Replace Text

    sed 's/old/new/g' file.txt

Replace all occurrences.

### In-Place Edit

    sed -i 's/old/new/g' file.txt

Edit file directly.

### Delete Lines

    sed '/pattern/d' file.txt

Remove matching lines.

### Print Range

    sed -n '10,20p' file.txt

Print lines 10-20.

### Add Line

    sed '5a\new content' file.txt

Insert after line 5.

### Remove Empty Lines

    sed '/^$/d' file.txt

Delete blank lines.

### Remove Leading Spaces

    sed 's/^[ \t]*//' file.txt

Strip whitespace from start.

### Remove Trailing Spaces

    sed 's/[ \t]*$//' file.txt

Strip whitespace from end.

### Number Lines

    sed = file.txt | sed 'N;s/\n/\t/'

Add line numbers.

### Extract Field

    sed 's/.*:\(.*\):.*/\1/' file.txt

Extract between colons.

## Tips

- Use -i for in-place editing (be careful!)

- Use -i.bak to create backup

- Use -n with p to print only selected lines

- Use g flag for global substitution

- Use different delimiters (|, #) for complex patterns

- Combine with other tools in pipelines

- Test without -i first to verify changes

- Essential for batch text processing