sed刪除以什麼開頭的內容_sed命令手冊
阿新 • • 發佈:2021-01-08
技術標籤: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命令實踐性很強,一定要自己按照例子多敲幾次。
長按識別或掃碼關注「Linux命令手冊」
可以快速查詢命令和提升Linux技能哦!