sed 常見的語法格式有兩中,一種為命令列模式,另一種為指令碼模式
sed
[options]
' 處理動作 ' 檔名
2.1.1. 常用選項-[e] 進行多次編輯注意:-[n] 取消預設輸出,不自動列印模式空間
-[r] 使用擴充套件正規表示式
-[i]修改原始檔
-[f]指定 sed 指令碼的檔名
2.1.2. 常見動作
注意: 動作必須位於單引號中
2.1.3. 學習示例p
列印
i
在指定行之前插入內容
o
在指定行之後插入內容
c
替換指定行所有內容
d
刪除指定行
對passwd
檔案進行搜尋替換操作
語法:sed [選項] **' s/搜尋'**
其中。s
表示 search搜尋;斜槓/
表示分隔符。可以自己定義;動作一般為列印p
和全域性替換g
# chen @ localhost in ~/shell [12:48:57]
$ sed -n 's/adm/adm/gp'
passwd
adm:x:3:4:adm:/var/adm:/sbin/nologin
# chen @ localhost in ~/shell [12:50:11]
$ sed -n 's/\/sbin\/nologin/chen/gp'
passwd
# 將/sbin/nologin 替換為 chen
in:x:1:1:bin:/bin:chen
ddaemon:x:2:2:daemon:/sbin:chen
adm:x:3:4:adm:/var/adm:chen
# 注意:搜尋替換中的分隔符可以自己搞定
# chen @ localhost in ~/shell [12:50:59]
$ sed -n 's@/sbin/nologin@chen@gp'
passwd
in:x:1:1:bin:/bin:chen
ddaemon:x:2:2:daemon:/sbin:chen
adm:x:3:4:adm:/var/adm:chen
其他命令
r
從另外檔案中讀取內容
w
內容另存為
&
儲存查詢串在替換串中引用,和()相同
=
列印行號
!
對所選行以外的所有行應用命令,放到行數之後
q
退出
2.1.4. sed 結合正則使用
/key/
查詢包含關鍵字的行
/key1/,/key2/
匹配兩個關鍵字之間的行
/key/,x
從匹配關鍵字的行開始到檔案第x行之間的行(包含關鍵字所在行)
x,/key/
從x行開始到關鍵字的匹配行之間的行
x,y!
不包含x到y行
如果沒有指定位址,sed將處理輸入檔案的所有行
學習案例
# chen @ localhost in ~/shell [14:09:02]
$ sed -nr '3,/^shut/p'
passwd
ddaemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
2.2.1. 用法
sed -f scripts.sh file
# 使用指令碼處理檔案
# 指令碼的第一行
#!/bin/sed -f
2.2.2. 注意事項 sed 語法 用法
sed command filename s 只顯示結果而不修改檔案。1 sed 2,5d file 顯示檔案file,除去2 5行,但行數超過檔案實際行數時不會報錯。sed 10 1 4 d file 顯示檔案file,除去包含101 104的行。sed 2,d file 顯示檔案,只顯示第一行。...
sed基礎用法
用法 sed option 位址命令 檔案 常用選項 n 不列印模式空間的內容到螢幕上 預設是列印的 e 多點編輯 sed optin e e f path script file 從指定檔案中讀取編輯指令碼 r 支援使用擴充套件正規表示式 i.bak 備份檔案並原處編輯 位址範圍 不給位址 對全文...
SED實用基礎
sed是一種linux的輕量級流編輯器。字串擷取命令 主要用來對資料進行選取 替換 刪除 新增。格式 sed 選項 動作 檔名 sed 正規表示式 p n 會只將處理後的資料輸出到螢幕 e 多項編輯 i 直接修改檔案sed s old new g text.txt 預修改,只是快取並沒修改 sed ...