sed:Stream EDitor
什么是sed呢?sed被稱為linux文本處理三劍客之一,另外兩個就是大名鼎鼎的grep和awk。sed是非交互性的流編輯器,在處理文本時一次只讀取一行文本,然后基于所給定的編輯腳本對模式空間中的內容做編輯處理并把處理后的結果輸出至標準輸出。接著處理下一行文本,這樣不斷重復,直到文件的末尾。sed命令默認不會對原文件做修改,因此你可以使勁的造,而不必擔心有什么可怕的后果。
下面來說說sed命令的用法:
格式:sed [option]… ‘script’ inputfile…
sed [option] ‘addr1,[addr2]編輯命令’ inputfile…
sed [option] “addr,[addr2]編輯命令” inputfile…
例:sed -n ‘2d’ /etc/issue
d:刪除模式空間中匹配到的行
例:sed ‘/^UUID/d’ /etc/fstab
p:顯示模式空間中的內容(不配合-n選項,默認會顯示兩遍)
例:sed -n ‘/^UUID/p’ /etc/fstab
a \text:在匹配到的行后面添加文本;
例:sed ‘/^UUID/a Test line’ /etc/fstab
例:sed ‘/^UUID/a Test line \nsecond line’ /etc/fstab(配合\n可實現多行追加)
i \text:在匹配到的行前面添加文本;支持使用\n實現多行插入
例:sed ‘/^UUID/i Test line’ /etc/fstab
c \text:替換匹配的行為單行或多行文本
例:sed ‘^/UUID/c uuid’ /etc/fstab
w /PATH/TO/FILE:保存模式空間中的內容至指定文件中
例:sed ‘^/UUID/w /tmp/fstab.txt’ /etc/fstab
r /PATH/FORM/FILE: 讀取指定文件的內容至模式空間中所匹配到的行后面
例:sed ‘7r /etc/passwd’ /etc/fstab
=:為模式空間中的行打印行號
例:sed ‘/^\//=’ /etc/fstab
!:對地址定界取反
例:sed ‘/^UUID/!d’ /etc/fstab
同時也支持后向引用
例:sed -n ‘s#r..t#&er#p’ /etc/passwd
sed -n ‘n;p’ FILE:顯示偶數行
sed ‘n;d’ FILE:顯示奇數行
sed ‘1!G;h;$!d’ FILE:逆序顯示文件內容
sed -n ‘1!G;h;$p’ FILE:逆序顯示文件內容(和上面的命令是同樣的結果)
sed ‘$!N;$!D’ FILE:取文件最后兩行
sed ‘$!d’ FILE:取出最后一行
sed ‘G’ FILE:在行后面增加空白行
sed ‘/^$/d;G’ FILE : 把多個空白行合并為一個空白行,并在每一行追加一個空白行
原創文章,作者:人字拖,如若轉載,請注明出處:http://www.www58058.com/71180
盡量不要復制粘貼筆記