This is an old revision of the document!
Sed
General Information
Stream editor tips and tricks.
Checklist
- Linux distro with the 'sed' package installed
Insert Lines
Insert lines before a found matched pattern.
Given the contents of /etc/resolv.conf:
# Generated by NetworkManager
nameserver 192.168.1.254
Insert a new DNS entry that will be checked first:
sed -i '/nameserver/ i\nameserver 8.8.8.8' /etc/resolv.conf
- /nameserver/ ⇒ pattern to match
- -i ⇒ in-line editing (changes the file in place)
- i\ ⇒ insert
Results in:
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 192.168.1.254
Insert at first line
Insert also works against line numbers.
Insert a new comment at line 1:
sed -i '1 i\# My first line comment' /etc/resolv.conf
Results in:
# My first line comment # Generated by NetworkManager nameserver 8.8.8.8 nameserver 192.168.1.254
Append Lines
Append lines after a found matched pattern.
Given the contents of /etc/resolv.conf:
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 192.168.1.254
Append a new DNS entry that will be checked 2nd:
sed -i '/nameserver 8.8.8.8/ a\nameserver 8.8.4.4' /etc/resolv.conf
Results in:
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 192.168.1.254
Remove Lines
Remove lines that match a pattern.
Given /etc/resolv.conf:
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 192.168.1.254
Remove the 8.8.4.4 entry:
sed i '/8.8.4.4/d' /etc/resolv.conf
Results in:
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 192.168.1.254