27.sed

9.4/9.5 sedlinux

 

9.4 sed:正則表達式

 

sed支持grep的一些用法bash

但不會顯示顏色ssh

 

如下是介紹 p 的用法:post

~1. sed ‘/root/'p test.txt排序

寫法是這樣的字符串

並不會帶顏色it

並會把全部的都打印出來test

~2. sed -n '/root/'p test.txtsed

加上-n就會只打印帶root的行

~3. sed -n '/r.t/'p test.txt

一樣支持 .

~4. sed -n '/r*t/'p tset.txt

一樣支持*

~5. sed -nr ’/o+t/'p test.txt

-r不脫意的話,要加-r

一樣支持+(一次和屢次)

~6. sed -nr '/o{2}/'p test.txt

-r不加脫意符的話,要加-r

一樣支持{},o出現2次

~7. sed -nr '/root|bus/'p test.txt

-r不加脫意符的話,要加-r

一樣支持|,root和bus

~8. sed -n '2'p test.txt

'2'p只列出第二行

‘2,5’p列出2-5行

‘2,$'p列出25-末行。$表示末行

~9. sed -e '1'p -e '/bus/'p -n test.txt

運行多條命令

可屢次使用-e。結尾不要忘記加-n,不然會列出全部

~10. sed -n '/bus/'Ip test.txt

I(大寫I)相似於grep的-i。不區分大小寫

實例:

1.

[root@axinlinux-01 sed]# sed '/root/'p test.txt 會列出文件全部,root項會打印兩行。而且不會有顏色

root:x:0:0:root:/root:/bin/bash

root:x:0:0:root:/root:/bin/bash

b

241:rnjo:41234123

asdas:r3o:asda

dadain:x:1:1:bin:/bin:/sbin/NOLogin

daemon:x:2:2:daem

dfasd:r4134o:reqreqw

--

-

2.

[root@axinlinux-01 sed]# sed -n '/root/'p test.txt 只打印關鍵詞的搜索項

root:x:0:0:root:/root:/bin/bash

3.

[root@axinlinux-01 sed]# sed -n '/r.t/'p test.txt 支持 . 一個任意字符

operator:x:11:0:operator:/rooot:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

4.

[root@axinlinux-01 sed]# sed -n '/r*t/'p test.txt 支持 * 任意個字符

root:x:0:0:root:/root:/bin/bash

shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown

halt:x:7:0:halt:/sbin:/sbin/halt

--

-

5.

[root@axinlinux-01 sed]# sed -nr '/o+t/'p test.txt 須要加-r。支持 + 一次或屢次個任意字符

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/rooot:/sbin/nologin

6.

[root@axinlinux-01 sed]# sed -nr '/o{2}/'p test.txt 須要加-r。支持{}的用法,前面字符的2次出現

root:x:0:0:root:/root:/bin/bash

oo1:wq

oo1

--

-

[root@axinlinux-01 sed]# sed -nr '/root|bus/'p test.txt 須要加-r。支持|的用法,root和bus

root:x:0:0:root:/root:/bin/bash

dbus:x:81:81:System message bus:/:/sbin/nologin

 

8.

[root@axinlinux-01 sed]# sed -n '2'p test.txt 只列出第二行

b

[root@axinlinux-01 sed]# sed -n '2,5'p test.txt 列出2-5行

b

241:rnjo:41234123

asdas:r3o:asda

dadain:x:1:1:bin:/bin:/sbin/NOLogin

[root@axinlinux-01 sed]# sed -n '28,$'p test.txt

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

chrony:x:998:996::/var/lib/chrony:/sbin/nologin

 

9.

[root@axinlinux-01 sed]# sed -e '1'p -e '/bus/'p -n test.txt 記得末尾加-n

root:x:0:0:root:/root:/bin/bash

dbus:x:81:81:System message bus:/:/sbin/nologin

 

10.

[root@axinlinux-01 sed]# sed -n '/bus/'Ip test.txt 加I(大寫I),不區分大小寫

ffebus

grgrgregBus

dbus:x:81:81:System message bus:/:/sbin/nologin

 

----------------------------------------------------------------------------------------------------------------------------------------------------

 

9.5sed:

 

如下介紹 sed其餘的用法

 

~1. sed '1,25'd test.txt

將單引號後面的 p ,換成 d 便可刪除1-10行

僅僅只是在屏幕裏刪除1-25行,實際的文件並無刪除

~2. sed -i '1,25'd test.txt

-i 將文件實際刪除。 與不加-i的區別

’/user2/'d 也可刪除user2所在的行

~3. sed ‘1,10s/ro/wx/g' test.txt

替換。單引號最後一個字符 g 表明全局替換

1-10行將ro替換成wx

也能夠在正則表達式裏全局替換

sed -r '1,10s/ro+/wx/g' test.txt 可是要加 -r(非脫意符的狀況下)

1-10行,ro開頭的一個或多個字符,全局替換成wx

~4. sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/' 意思爲:

像這種的字符串 root:x:0:0:root:/root:/bin/bash ,先後兩個相互交換一下

 

([^:]+)表示單獨指以非:開頭的一個或多個字符。()做爲區分,單獨指這一種字符。後面的:表明以:做爲間隔的

(.*) 表示貪婪匹配,一直匹配到最後。後面的:也是表明的以:做爲間隔的

([^:]+)表示最後一個字符,以非:開頭的一個或多個字符。()做爲區分,單獨指這一種字符

\3:\2:\1分別表明前三個以:間隔並以()做爲區分的字符。須要這樣寫來,表示命令後的一種排序方式。也就是說,3表明綠色的,1表明藍色的,讓他以123這種方式來排序。已達到先後兩個字符調換的結果

~5. sed 's/\/bin\/bash/wx/g' test.txt

當咱們須要替換的字符帶有/的時候,咱們要在該字符自己的/前面加脫意符\

~6. sed 's/[a-zA-Z]//g' test.txt

將數字所有刪除,直接替換爲空就能夠

~7. sed -r 's/(.*)/wx:&/' test.txt

將全部的行前面加上wx:

&表明全部在前面替換

實例:

1.

[root@axinlinux-01 sed]# sed '1,25'd test.txt p換d,刪除1-25行。實際的文件並無刪除

 

ystemd-network:x:192:192:systemd Network Mooo1anagement:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

polkitd:x:999:997:User for polkitd:/:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

chrony:x:998:996::/var/lib/chrony:/sbin/nologin

 

2.

[root@axinlinux-01 sed]# sed -i '1,25'd test.txt 加-i選項,將實際的文件刪除設定的行段

[root@axinlinux-01 sed]# wc -l !$ wc -l 能夠看一下

wc -l test.txt

7 test.txt

 

3.

[root@axinlinux-01 sed]# sed '1,10s/ro/wx/g' test.txt |head 前十行ro替換成了wx

wxot:x:0:0:wxot:/wxot:/bin/bash

b

241:rnjo:41234123

asdas:r3o:asda

dadain:x:1:1:bin:/bin:/sbin/NOLogin

daemon:x:2:2:daem

dfasd:r4134o:reqreqw

o1

ffebus

grgrgregBus

[root@axinlinux-01 sed]# sed -r '1,10s/d+/wx/g' test.txt |head 前十行d開頭的一個或多個字符,替換成了wx,加-r

root:x:0:0:root:/root:/bin/bash

b

241:rnjo:41234123

aswxas:r3o:aswxa

wxawxain:x:1:1:bin:/bin:/sbin/NOLogin

wxaemon:x:2:2:wxaem

wxfaswx:r4134o:reqreqw

o1

ffebus

grgrgregBus

 

4.

[root@axinlinux-01 sed]# head test.txt 咱們先head一下

root:x:0:0:root:/root:/bin/bash

241:rnjo:41234123

asdas:r3o:asda

dadain:x:1:1:bin:/bin:/sbin/NOLogin

daemon:x:2:2:daem

dfasd:r4134o:reqreqw

sdasdas:rgo:

on:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

[root@axinlinux-01 sed]# head test.txt | sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/' 上下對比一下,發現已成功調換

/bin/bash:x:0:0:root:/root:root

41234123:rnjo:241

asda:r3o:asdas

/sbin/NOLogin:x:1:1:bin:/bin:dadain

daem:x:2:2:daemon

reqreqw:r4134o:dfasd

sdasdas:rgo:

/sbin/nologin:/sbin:on

/sbin/nologin:x:3:4:adm:/var/adm:adm

/sbin/nologin:x:4:7:lp:/var/spool/lpd:lp

 

5.

[root@axinlinux-01 sed]# head test.txt | sed 's/\/bin\/bash/wx/g' 脫意符要加在須要脫意字符的前面,別忘了加g

root:x:0:0:root:/root:wx

241:rnjo:41234123

asdas:r3o:asda

dadain:x:1:1:bin:/bin:/sbin/NOLogin

daemon:x:2:2:daem

dfasd:r4134o:reqreqw

sdasdas:rgo:

on:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

 

6.

[root@axinlinux-01 sed]# head test.txt |sed 's/[a-zA-Z]//g'

::0:0::/://

241::41234123

:3:

::1:1::/://

::2:2:

:4134:

::

:/://

::3:4:://://

::4:7::///://

 

7.

[root@axinlinux-01 sed]# head test.txt |sed -r 's/(.*)/wx:&/' &表明全部前面替換

wx:root:x:0:0:root:/root:/bin/bash

wx:241:rnjo:41234123

wx:asdas:r3o:asda

wx:dadain:x:1:1:bin:/bin:/sbin/NOLogin

wx:daemon:x:2:2:daem

wx:dfasd:r4134o:reqreqw

wx:sdasdas:rgo:

wx:on:/sbin:/sbin/nologin

wx:adm:x:3:4:adm:/var/adm:/sbin/nologin

wx:lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息