一、Linux文本處理三劍客之 sed(Sed stream EDite)正則表達式
做爲行編輯器,對文本進行編輯(以行爲單位編輯)編輯器
注意:sed編輯文件,卻不改變原文件3d
二、Sed的工做原理:code
指定一個文本文件,依次讀取文本文件中每行內容,讀取到模式空間中(PATTERN SPACE),在模式空間中進行文本匹配,對匹配後的文本內容進行修改(替換、刪除、打印、修改、保存)。blog
三、用法:ip
sed [參數] 「sed本身獨立的用法格式語句」字符串
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
四、常見選項input
-n 不顯示默認輸出的內容it
-r 指定使用擴展的正則表達式class
匹配IP
全部的\都不要
|或者
-e script for while if
-f 指定腳本文件
-l 指定文本換行的長度?
五、地址定界方式
(1)直接匹配數值
sed -n ‘5-7’
(2)d~步長
(3)$ 指定行尾
(4)/正則/
/正則1/,/正則2/
sed -n `/k\{5,\}/,$p` abc
sed -n `^(fd\)\+/.+2p` abc //正則寫在前面沒有問題,但寫在後面會出現問題
(5)0,addr
addr能夠爲數字/$/正則表達式
sed -n `0,/k\{5,\}/p` abc
(6)addr,+N
配置addr行到,addr後N行
sed -n `/fd/,+5p` abc
六、常見命令
p print 打印(默認在屏幕上顯示出來),建議和-n一塊兒使用;
c 替換
sed "/aaa/c \A" a
d 刪除
sed "/aaa/d" a
sed "1,3d" a
n N讀取/添加 模式匹配到的下一行內容,再對其進行操做;
w 保存文件內容到一個新的文件
sed "/patthen/w 新的文件名"y原來的文件名
sed "/k/w /tmp/aabbcc" abc
*s*文本內容替換,默認替換模式空間匹配到的第一項;
語法格式: s/pattern/字符串/ //中間的/能夠替換爲任意一個特殊字符
常見命令:g 所有
\1\2 h和正則表達式的分組相同,實現反向應用;(指定某一個匹配項進行修改替換)
& d調用前面(pattern)匹配的內容
sed "s/r..t/&er/g"w文件