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...