-n
p
#打印匹配的第幾行,其餘的不打印-r
#啓用擴展正則表達式,使用該參數能夠不用\
去轉意-e
#屢次匹配,1個內容可能匹配兩次,若是兩次匹配的內容相同的話sed -n '/root/'Ip test.txt
#忽略大小寫sed '1,10d' test.txt
#刪除內容sed -i '1,10s/root/test/' test.txt
#把改變的內容寫入文件,默認是不改變的,只是把改的打印出來,卻不改變文件內容sed '1,10s/root/test/g' test.txt
#替換sed -nr 's/(test01:).*(test01:).*/xx:& yy:&\/'p test.txt
# ‘&’用法是匹配前面’()’內容,而’&’則表示匹配到的行的一整行內容正則表達式
-n``p
:bash
[test@xujb01 exmple]$ sed -n '/root/'p 01
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
-e
:markdown
[test@xujb01 exmple]$ sed -n -e '/root/'p -e '/test01/'p 01
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
test01:x:1001:1001::/home/test01:/sbin/nologin
Ip
:app
[test@xujb01 exmple]$ sed -n '/bus/'Ip 01
ssssBUS
dbus:x:81:81:System message bus:/:/sbin/nologin
&:工具
[test@xujb01 exmple]$ sed -rn 's/(test01:).*(test01:).*/\1---\2/'p 01
test01:---test01:
一、 ‘&’匹配到行的一整行內容,
二、 ‘\1’ ‘\2’表示第一個括號的內容和第二個括號的內容post
[test@xujb01 exmple]$ sed -rn 's/(test01:).*(test01:).*/XX:\1-&---\2-&/'p 01
XX:test01:-test01:x:1001:1001::/home/test01:/sbin/nologin---test01:-test01:x:1001:1001::/home/test01:/sbin/nologin
四、 因此根據第三條能夠匹配‘&’的效果,並且能夠指定位置添加內容:url
[test@xujb01 exmple]$ sed -rn 's/(test01:)(.*)(test01:)(.*)/xx:\1\2---yy:\3\4/'gp 01
xx:test01:x:1001:1001::/home/---yy:test01:/sbin/nologin
或者
[test@xujb01 exmple]$ sed -rn 's/(test01:.*)(test01:.*)/xx:\1---yy:\2/'gp 01
xx:test01:x:1001:1001::/home/---yy:test01:/sbin/nologin
五、 sed 打印行號spa
[test@xujb01 exmple]$ sed -n -e '1,3 =' test.txt
1
2
3
-------------------------------------------------------------------
[test@xujb01 exmple]$ sed -n -e '1,3=' -e '1,3'p test.txt
1
root:x:0:0:root:/root:/bin/bash
2
bin:x:1:1:bin:/bin:/sbin/nologin
3
daemon:x:2:2:daemon:/sbin:/sbin/nologin