相比於grep,sed可以替換內容並輸出到螢幕上。
sed [選項] '動作' filename
選項
-n : 將經過sed命令處理過的行輸出到螢幕
-e : 允許對輸入資料應用多條sed命令
-i : 用sed的修改結果直接修改所讀取的檔案
......
動作
d : 刪除
p : 列印
s : 字串替換(本行)
g : 本行全域性替換
......
列印/etc/passwd檔案的第3行
$sed -n '3p' /etc/passwd
列印2到4行
$sed -n '2,4p' /etc/passwd
列印所有行
$sed -n '1,$p' /etc/passwd
#test檔案內容如下
root:x:0
:0:root
:/root
:/bin/bash
daemon:x:1
:1:daemon
:/usr/sbin
:/usr/sbin/nologin
bin:x:2
:2:root
:/bin
:/usr/sbin/nologin
列印包含root的行
$sed -n '/root/p' test
root:x:0:0:root:/root:/bin/bash
bin:x:2:2:root:/bin:/usr/sbin/nologin
注意在命令中「/」為分隔符。
加上 -e 命令可以實現多個行為
$sed -e '/bash/p' -e '/sbin/p' -n test
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:root:/bin:/usr/sbin/nologin
刪除某行並或者多行
$sed '2d' test
root:x:0:0:root:/root:/bin/bash
bin:x:2:2:root:/bin:/usr/sbin/nologin
#*************************=
$sed '/root/d' test #刪除包含root的行
替換字元或者字串
#s為替換的動作,g為本行全域性替換,若沒有g則替換本行的第乙個。
$sed '1s/root/iam/g' test
iam:x:0:0:iam:/iam:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:root:/bin:/usr/sbin/nologin
#將第一行所有的root替換成iam。
#sed 's/root/iam/g' test
#檔案中所有root都替換成iam
替換的格式為: sed 『s/舊字串/新字串/g filename
「/」為分隔符,也可以使用「#」、「@」等特殊字元。
#刪除文件中所有的root
$sed 's/root//g' test
:x:0:0::/:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2::/bin:/usr/sbin/nologin
#只要將新字串的位置設為空即可。
動作 a(行後追加) ,c(行替換),i(行前追加) sed 正規表示式
如果testfile的內容是 welcome to the world of regexp 現在要去掉所有的html標籤,使輸出結果為 hello world welcome to the world of regexp 怎麼做呢?如果用下面的命令 sed s g testfile 結果是兩個空行,...
sed 常用正規表示式
1.乙個比較實用的正規表示式 匹配html的嵌入 匹配 的嵌入碼 刪除僅由空字元組成的行 sed space d filename 匹配html標籤 例如 從html檔案中剔除html標籤 sed s g space d file.html 例如 要從下列 中去除 及其中包括的 b 4c6c2a65...
正規表示式 sed 用法
可以通過定址來定位你所希望編輯的行,該位址用數字構成,用逗號分隔的兩個行數表示以這兩行為起止的行的範圍 包括行數表示的那兩行 如1,3表示1,2,3行,美元符號 表示最後一行。範圍可以通過資料,正規表示式或者二者結合的方式確定 呼叫sed命令有兩種形式 a 在當前行後面加入一行文字。b lable ...