linux_wiki:sed

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

linux_wiki:sed [2016/03/18 23:23]
billdozor [Sed]
linux_wiki:sed [2019/05/25 23:50]
Line 1: Line 1:
-====== Sed ====== 
  
-**General Information** 
- 
-Stream editor tips and tricks.  
- 
-**Checklist** 
-  * Distro(s): Any 
-  * Package: 'sed' package installed 
- 
----- 
- 
-====== Print Lines ====== 
- 
-Different ways to print specific lines. 
- 
-Print only line 5 pattern space<code bash>sed -n '5p' /etc/passwd</code> 
-  * -n => silent; do not print the entire file  
- 
-Line 5, don't delete it<code bash>sed '5!d' /etc/passwd</code> 
-  * !d => don't delete 
- 
-Print up to line 5, quit and delete the rest of the output<code bash>sed '5q;d' /etc/passwd</code> 
-  * q => quit/stop processing more input 
-  * d => delete the pattern space (removes all but line 5 from output) 
- 
----- 
- 
-====== Insert Lines ====== 
- 
-Insert lines before a found matched pattern. 
- 
-Given the contents of /etc/resolv.conf: 
-<code bash> 
-# Generated by NetworkManager 
-nameserver 192.168.1.254 
-</code> 
- 
-Insert a new DNS entry that will be checked first: 
-<code bash> 
-sed -i '/nameserver/ i\nameserver 8.8.8.8' /etc/resolv.conf 
-</code> 
-  * /nameserver/ => pattern to match 
-  * -i => in-line editing (changes the file in place) 
-  * i\ => insert 
- 
-Results in: 
-<code bash> 
-# Generated by NetworkManager 
-nameserver 8.8.8.8 
-nameserver 192.168.1.254 
-</code> 
- 
-===== Insert at first line ===== 
- 
-Insert also works against line numbers. 
- 
-Insert a new comment at line 1: 
-<code bash> 
-sed -i '1 i\# My first line comment' /etc/resolv.conf 
-</code> 
- 
-Results in: 
-<code bash> 
-# My first line comment 
-# Generated by NetworkManager 
-nameserver 8.8.8.8 
-nameserver 192.168.1.254 
-</code> 
- 
----- 
- 
-====== Append Lines ====== 
- 
-Append lines after a found matched pattern. 
- 
-Given the contents of /etc/resolv.conf: 
-<code bash> 
-# Generated by NetworkManager 
-nameserver 8.8.8.8 
-nameserver 192.168.1.254 
-</code> 
- 
-Append a new DNS entry that will be checked 2nd: 
-<code bash> 
-sed -i '/nameserver 8.8.8.8/ a\nameserver 8.8.4.4' /etc/resolv.conf 
-</code> 
- 
-Results in: 
-<code bash> 
-# Generated by NetworkManager 
-nameserver 8.8.8.8 
-nameserver 8.8.4.4 
-nameserver 192.168.1.254 
-</code> 
- 
----- 
- 
-====== Remove Lines ====== 
- 
-Remove lines that match a pattern. 
- 
-Given /etc/resolv.conf: 
-<code bash> 
-# Generated by NetworkManager 
-nameserver 8.8.8.8 
-nameserver 8.8.4.4 
-nameserver 192.168.1.254 
-</code> 
- 
-Remove the 8.8.4.4 entry: 
-<code bash> 
-sed -i '/8.8.4.4/d' /etc/resolv.conf 
-</code> 
- 
-Results in: 
-<code bash> 
-# Generated by NetworkManager 
-nameserver 8.8.8.8 
-nameserver 192.168.1.254 
-</code> 
- 
----- 
  • linux_wiki/sed.txt
  • Last modified: 2019/05/25 23:50
  • (external edit)