shell指令碼 sed流編輯器

2021-09-25 05:12:17 字數 1766 閱讀 5069

sed -n '/pattern/command'file

-n 顯示pattern查詢出的匹配行(不加-n會顯示原來的行與匹配的行)

-e 直接在命令列進行sed編輯

sed -n -e '/aaaaa/p'  -e  '/aaaa/p' file    (p是列印的意思)

-f 有時上文中紅色的長度過長 可以把上文紅色放在檔案file1中 

sed -n -f file1 file

-i 直接修改原檔案內容

sed -i 's/love/hate/g;p' file  (把love改為hate 紅色部分為固定格式)

pattern的匹配模式:

10command 匹配到第10行

sed -n '15p' file

10,20command 從第10行開始,到20行結束

sed -n '10,20p' file

10,+5command 匹配從第10行開始,到16行結束

sed -n '10,+2p' file

/pattern/command 匹配到pattern的行

sed -n '/love/p' file

/pattern1/,/pattern2/command  匹配從pattern1行開始,到匹配到pattern2的行結束

sed -n '/python/,/php/p' file

10,/pattern1/commad 從第10行開始,到匹配到pattern1行結束

sed -n '10,/php/p' file

/pattern1/,10command 匹配到pattern1的行開始,到第10行匹配結束

sed -n '/python/,10p'

command命令:

查詢:p 列印

刪除:d

i (infront)行前增加             sed -i '/php/,/python/i content' file   在所有匹配到的行前新增content

r (read) 把r後的檔案file1的內容追加到匹配行的後面    sed -i '/php/r file1' file

w (write)   把匹配到的行寫入到file2中      sed -i '/php/w file2' file

修改:s

在每行中把php替換為python  (只替換乙個)  sed -i 's/php/python/' file

在每行中把php替換為python  (g全部替換)  sed -i 's/php/python/g' file

在每行中把php替換為python  (替換第2個)  sed -i 's/php/python/2' file

在每行中把php替換為python  (替換從第二個以後的匹配內容)  sed -i 's/php/python/2g' file

在每行中把php替換為python  (不區分大小寫 and 全部替換)  sed -i 's/php/python/ig' file

反向引用:(類似於php中正則的後向引用)  

sed -i 's/\(python.\)/\1s/g' file    把類似python1、python2、python3  後面新增s字元。 括號內的字串是不變的,\1用於引用匹配的字串,所以\1和小括號的方式可以進行部分替換。

兩個條件 : sed -n '/^#/p;/^$/p' my.cnf.bak   查詢#開頭或者空行的行 ,用分號隔開

sed -i '/^#/d;/^$/d' my.cnf.bak  刪除

Shell指令碼之Sed編輯器

插入sed是一種流編輯器,流編輯器會在編輯器處理資料之前基於預先提供的一組規則來編輯資料流。可以根據命令來處理資料流中的資料,這些命令要麼從命令列中輸入,要麼儲存在乙個命令文字檔案中。主要包括讀取 執行和顯示三個過程。sed e 操作 檔案1 檔案2 sed n e 操作 檔案1 檔案2 sed f...

sed流編輯器

sed預設不編輯原始檔,僅對模式空間中的資料做處理 而後,處理結束後,將模式空間中的內容列印至螢幕。sed options addresscommand file.用行,和命令一起來操作文字 options n 靜默顯示,不再顯示模式空間中的內容 i 直接修改原檔案 e 指令碼 e指令碼 可以同時執...

sed 流編輯器

sed 模式空間 預設不編輯原檔案,僅對模式空間中的資料做處理 而後,處理結束後,將模式空間列印至螢幕 sed options addresscommand file n 靜默模式,不再預設顯示模式空間中的內容 i 直接修改原檔案 e script e script 可以同時執行多個指令碼 f pa...