sed不只可以實現如grep的匹配功能,並且還能實現文本替換功能等。正則表達式
sed -n '5'p test.txt sed -n '1,5'p test.txt sed -n '1,$'p test.txt sed -n '/root/'p test.txt sed -n '/^1/'p test.txt sed -n 'in$'p test.txt sed -n '/r..o/'p test.txt sed -n 'oo*'p test.txt sed -e '1'p -e '/111/'p -n test.txt
p: 參數p表示打印
-n:只打印咱們指定的行,無關選項不加。
不加-n:會在指定行,後面顯示因此其餘的行。
'n':單引號裏的n表示第幾行;
'1,$':表示打印全部,**$**表示前面指定1行的後面的全部行
注:能夠指定一個範圍打印,如 sed -n '1,3' test.txt工具
//:表示匹配字符串
注: 在打印字符串時,在grep中的特殊字符(&*等)一樣能在sed中使用 。
-e:加上此選項可以同時實現多個行爲。如在匹配行的同時匹配一個字符串,若兩個不一樣的表達式,都匹配的是同一個字符串或行,那麼將會打印兩次。
I,大i 匹配時不區分大小寫,如sed -n '/bus/'Ip /etc/passwdcode
在sed使用特殊符號+匹配時,須要加脫義符號,如 sed -n '/r+t/'p test.txt;
sed -nr: 加r命令後,就不用加脫義字符blog
d,表示刪除動做,這個操做不會修改文件的實際內容文檔
-i:會直接刪掉文件內容,而且能指定字符串名字符串
參數s:表示替換的動做
參數g:表示本行全局替換,如不加g則只替換本行常出現的第一個字符串test
如:sed -r '1,10s/ro+/r/g' test.txt 注:這裏由於sed 使用+ 因此用了 -r選項(取消脫義字符)sed
sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/'
1.格式
s//:表示所有,不指定範圍就是所有
-r:取消脫義符號
2.在調換前,咱們要先用表達式,表答咱們須要調換的字符串;
s//:表示所有,不指定範圍就是所有
[^:]:表示一個非冒號的字符
[^:]+:加號表示一個或多個 ,如root
([^:]+):小括號表示等會咱們須要調用括號內的東西;
::表示間隔的特殊符號
*. **:表示所有匹配
(.*): 表示貪婪匹配,意爲直到最後一個冒號爲止的字符串
([^:]+):表示一個非零字符串
3.調換位置
\3:\2:\1/:這裏的意思是3個字符串的位置;本應該是123 ,可是咱們要給他們調換位置,因此變成了321,冒號是間隔符號搜索
如:sed 's/[a-zA-Z]//g' test.txt語法
head test.txt |sed -r 's/(.*)/aaa:&/' &:保存搜索字符用來替換其餘字符,如s/asd/&/,asd這成asd。