sed命令的使用

2021-10-07 18:41:59 字數 2269 閱讀 6847

1)sed: stream  editor   流編輯器的縮寫;

2)sed命令用來處理檔案內容的資料。與awk相對應(awk是處理列資料)

3)語法上與vi中的語法很像;

4)sed 預設支援basic正則,所以,有的字元需要轉義,比如()

如果想不轉義,,需要新增-r 引數;  sed -r ..........

5)命令真正反映在檔案中,需要新增  -i 引數,不加i引數,只是在螢幕上會顯示改變後的結果,但檔案中並沒有改變。

6)-n 引數,靜默輸出,將非列印內容遮蔽

7)-e 指定不同的替換命令,比如同時有多個替換命令。

1)sed  引數 『指令碼語句』  待操作檔案     ------>指令碼語句格式/pattern/action---->pattern 是正規表示式action是編輯動作

2)sed  引數 -f    『指令碼檔案』  待操作檔案

ps:使用單引號和雙引號都行。

i, insert  插入----------------->相當於在行的上一行新增行

d,delete 刪除

s,substitution   替換

示例:1)sed '3a hello'  test.sh   ----->在第3行追加 hello----->只會在螢幕中顯示,並沒有真正改變檔案

2)sed -i '3a hello'  test.sh ---->真正改變檔案    --->新增 -i引數 ,結果會反應到檔案中。

3)sed '3i  world'  test.sh ------->在第3行前面新增一行world,未加-i 引數,不會反應到檔案

4)sed '3d'  test.sh ------->刪除第3行,未加-i 引數,不會反應到檔案

5)sed '3,6d'  test.sh  ------->刪除第3-6行,未加-i 引數,不會反應到檔案

6)sed 's/echo/printf/g'   test.sh ------->將echo替換為printf  /g表示如果一行有多個echo,則全部替換

------sed '/echo/s/echo/printf/g' test.sh   --------->實際上可以這麼寫,先找到ehco所在行,然後,使用printf替換echo,這樣就與 /pattern/action 格式一致了,第一種形式是這種形式的簡寫。

7)sed 's/echo/--&--/g'   test.sh ------->將echo替換為--echo--  /g表示如果一行有多個echo,則全部替換

8)sed 's/([0-9])([0-9])/-\1-~\2~\g'  test.sh ---->將連續的兩個數字(也可以是多個數字)中第1個數兩邊新增-,第2個數兩邊新增~           ------>

或者   sed -r  's/echo/--&--/g'   test.sh --->&是佔位符,代替前面的echo.

9)sed 's/echo/printf/g;s/hello/world/g'   test.sh ------------->同時替換多個字串 (不用-e的話,用分號隔開)或者

sed -e 's/echo/printf/g'  -e 's/hello/world/g'   test.sh ------------->同時替換多個字串

10)sed  -n   '/hello/p'  tesh.sh   ----------》將包含hello串的行列印出來。---->-n引數表示輸出靜默,不想列印的內容就不顯示了。

不寫n引數的話,hello會顯示兩遍,其他的內容也會顯示。

11)sed  '/hello/d'  test.sh   ----》刪除包含hello的行,要反應到檔案中加 -i引數

12)去掉html中的帶<> 的部分

welcome to the world of regexp

方法:將帶<>的部分替換成空

sed 's/<.*>//g' test.html  發現所有字元都變為空了,

正規表示式有貪心演算法,數量限定符會匹配盡可能長的字串,也就是說*將從中的h一直匹配到了中的l ;

正確寫法:

sed 's/]*>//g' test.html 

sed命令使用

sed命令使用 常用選項 n 使用安靜模式,在一般情況所有的 stdin 都會輸出到螢幕上,加入 n 後只列印被 sed 特殊處理的行 e 多重編輯,且命令順序會影響結果 f 指定乙個 sed 指令碼檔案到命令列執行,r sed 使用擴充套件正則 i 直接修改文件讀取的內容,不在螢幕上輸出 sed操...

sed命令使用

常用選項 n 使用安靜模式,在一般情況所有的 stdin 都會輸出到螢幕上,加入 n 後只列印被 sed 特殊處理的行 e 多重編輯,且命令順序會影響結果 f 指定乙個 sed 指令碼檔案到命令列執行,r sed 使用擴充套件正則 i 直接修改文件讀取的內容,不在螢幕上輸出 sed操作命令 sed ...

Sed命令的使用總結

1 sed刪除行首的空格或tab字元。sed s t g file sed s g file 2 sed輸出字串 列印第三行 3表示等號,p表示列印 sed n 3p etc passwd 列印2至5行 sed n 2,5p etc passwd 從第2行開始,每隔3行列印一行 sed n 2 3p...