1. 程式人生 > 其它 >sed刪除以什麼開頭的內容_sed命令手冊

sed刪除以什麼開頭的內容_sed命令手冊

技術標籤:sed刪除以什麼開頭的內容

功能

sed全名叫stream editor,流編輯器,用程式的方式來編輯文字,sed玩的就是正則表示式。

示例

1、使用下面這段文字作為演示。

[[email protected] src]# cat e.txte e equ xiang xiang tian gebai mao fu lv shuihong zhang bo qing bo

2、替換文字中每行第一次出現的e為o,並將結果作為標準輸出。

[[email protected] src]# sed 's/e/o/' e.txto e equ xiang xiang tian gobai mao fu lv shuihong zhang bo qing bo

3、替換文字中每行所有出現的e為o,並將結果作為標準輸出。

[[email protected] src]# sed 's/e/o/g' e.txto o oqu xiang xiang tian gobai mao fu lv shuihong zhang bo qing bo

4、替換文字中每行所有出現的e為o,並將結果寫入檔案。

[[email protected] src]# sed -i 's/e/o/g' e.txt [[email protected] src]# cat e.txt o o oqu xiang xiang tian gobai mao fu lv shuihong zhang bo qing bo

5、將第3行的u替換成v,並將結果列印到標準輸出。

[[email protected] src]# sed  '3s/u/v/g' e.txt o o oqu xiang xiang tian gobai mao fv lv shvihong zhang bo qing bo

6、刪除全部以o結尾的行

[[email protected] src]# sed  '/o$/d' e.txt bai mao fu lv shui

7、可以將sed作為grep命令使用,例如列印匹配mao的行。

[[email protected]src]#sed-n'/mao/p'e.txtbai mao fu lv shui

8、列印第一行到匹配成功bai的行

[[email protected] src]# sed -n '1,/bai/p' e.txto o oqu xiang xiang tian gobai mao fu lv shui

9、多個匹配,將每行第一次出現的go和bo替換成to。

[[email protected] src]# sed -e 's/go/to/' -e 's/bo/to/' e.txt o o oqu xiang xiang tian tobai mao fu lv shuihong zhang to qing bo

10、列印文字的第2行

[[email protected] src]# sed '2q;d' e.txt qu xiang xiang tian go

思考

1、用sed只替換2到5行的內容該怎麼寫?

2、用sed只替換每行第二個匹配到的字元怎麼寫?

3、用sed在每行的開頭或結尾加字元要怎麼寫?

補充

1、如果匹配模式中有"/"符號,可以使用其他符號替代,以降低匹配模式編寫的複雜度,例如用'#'符替代:

sed 's#http://#ftp://#g' filename

2、補充一下正則表示式最基本的東西

  • ^ 表示一行的開頭。如:/^#/ 以#開頭的匹配。

  • $ 表示一行的結尾。如:/}$/ 以}結尾的匹配。

  • \< 表示詞首。如:\

  • \> 表示詞尾。如:abc\>表示以abc結尾的詞。

  • . 表示任何單個字元。

  • * 表示某個字元出現了0次或多次。

  • [ ] 字元集合。如:[abc] 表示匹配a或b或c,還有 [a-zA-Z] 表示匹配所有的26個字元。

  • 如果其中有^表示取反,如 [^a] 表示非a的字元。

  • 再補充一個^$表示空行

3、好了,就這樣,sed命令實踐性很強,一定要自己按照例子多敲幾次。


45367c566303d4232a90bd6556134d27.png

長按識別或掃碼關注「Linux命令手冊」

可以快速查詢命令和提升Linux技能哦!