在字符串處理中,最重要的就是查找和替換。
sed [選項] 處理腳本 輸入文件...
-r是用于在sed命令中使用擴展正則表達式的選項。如果沒有指定選項,sed命令會默認將基本正則表達式視為正則表達式。
-e選項用于為sed命令設置要執行的處理腳本。如果沒有指定任何選項,sed命令會將第1個非選項的參數作為處理腳本來運行。例如指定多個處理腳本
$ sed -e 's/:/,/g' -e 's/bin//g' /etc/passwd root,x,0,0,root,/root,//bash ,x,1,1,,/,/s/nologin daemon,x,2,2,daemon,/s,/s/nologin adm,x,3,4,adm,/var/adm,/s/nologin lp,x,4,7,lp,/var/spool/lpd,/s/nologin sync,x,5,0,sync,/s,//sync ……以下省略……
-i選項的后面指定一個字符串參數,sed命令還會對編輯之前的原文件備份
例如將:(冒號)替換為_(下劃線)
$sed's/:/_/g'/etc/passwd
在上面的示例中,處理腳本s/:/_/并沒有使用地址。如果像這樣省略了地址,則文件的全部內容都會成為處理對象。
例如第2-4行作為命令的處理對象
$sed'2,4s/:/_/g'/etc/passwd
▼使用s命令將匹配到指定模式的內容刪除
“替換后字符串”也可以是空字符串。這就相當于刪除匹配到的部分,s命令末尾的標志是可以控制替換操作的符號,常用的主要是g和i。標志g表示對匹配到匹配模式的所有結果進行替換。i就代表匹配到的第一行。
如果不需要使用任何標志,則標志部分可以省略。此外,如果要同時使用多個標志,可以像ig或gi這樣以任意的順序指定多個標志。
使用/對/字符進行轉義
$ sed 's//bin///usr/bin//g' /etc/passwd root:x:0:0:root:/root:/usr/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin ……
使用%作為分隔符
$ sed 's%/bin/%/usr/bin/%g' /etc/passwd root:x:0:0:root:/root:/usr/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin ……
審核編輯:湯梓紅
-
SED
+關注
關注
0文章
25瀏覽量
27085 -
字符串
+關注
關注
1文章
578瀏覽量
20508 -
Shell
+關注
關注
1文章
365瀏覽量
23358 -
腳本
+關注
關注
1文章
389瀏覽量
14858 -
正則表達式
+關注
關注
0文章
27瀏覽量
3483
原文標題:shell腳本基礎(七)正則表達式sed
文章出處:【微信號:FPGA學姐,微信公眾號:FPGA學姐】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論