Skip to content

sed Command

Basic Substitution

# String substitution (first match only)
sed 's/before/after/' filename

# String substitution (all occurrences)
sed 's/before/after/g' filename

# Edit file in-place
sed -i 's/before/after/g' filename

# Edit with backup
sed -i.bak 's/before/after/g' filename

Line Operations

# Delete specific lines
sed '3d' filename              # Delete line 3
sed '2,5d' filename            # Delete lines 2-5
sed '/pattern/d' filename      # Delete lines matching pattern

# Insert lines
sed '3i\line to add' filename    # Insert before line 3
sed '3a\line to add' filename    # Insert after line 3

# Display specific lines only
sed -n '3p' filename           # Display line 3 only
sed -n '2,5p' filename         # Display lines 2-5 only

Common Use Cases

# Change IP address
sed -i 's/192.168.1.100/192.168.1.200/g' /etc/hosts

# Comment out
sed -i 's/^/#/' filename        # Add # at line start

# Uncomment
sed -i 's/^#//' filename        # Remove # from line start

# Remove blank lines
sed -i '/^$/d' filename

# Append line to end of file
sed -i '$a\line to add' filename

Advanced Usage

# Execute multiple substitutions simultaneously
sed -e 's/old1/new1/g' -e 's/old2/new2/g' filename

# Use regular expressions
sed 's/[0-9]\+/NUMBER/g' filename    # Replace digits with NUMBER

# Case-insensitive substitution
sed 's/pattern/replacement/gi' filename