sed 用法

sed 工具

-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

Ipapp

[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
相關文章
相關標籤/搜索