sed 命令

sed 命令:

echo "I am oldboy,my qq is 1234567" >>oldboy.txt

要求:

1、取出oldboy.txt 文件中的oldboy字符串

方法一:

[root@git oldboy]# echo "I am oldboy,my qq is 1234567">oldboy.txt 

[root@git oldboy]# cat oldboy.txt 

I am oldboy,my qq is 1234567

[root@git oldboy]# sed 's#^.*m ##g' oldboy.txt 

oldboy,my qq is 1234567

[root@git oldboy]# sed 's#^.*m ##g' oldboy.txt |sed 's#,.*##g'

oldboy

[root@git oldboy]# sed 's/^.*m //g' oldboy.txt|sed 's/,.*//g'

oldboy

注意:"#"和"/"都是替換的符號

方法二:

[root@git oldboy]# sed 's#^.*m \(oldboy\),.*#\1#g' oldboy.txt 

oldboy


[root@git oldboy]# sed 's#^.*m \(old\)\(boy\),.*#\1#g' oldboy.txt    

old

[root@git oldboy]# sed 's#^.*m \(old\)\(boy\),.*#\1\2#g' oldboy.txt 

oldboy

[root@git oldboy]# sed 's#^.*m \(old\)\(boy\),.*#\2#g' oldboy.txt   

boy

\ 後面加數字的意思是取出前面括號裏面的內容,第一個括號表示1,第二個表示2,以此類推。


要求:

[root@git oldboy]# cat oldboy.txt 

I am oldboy,my qq is 1234567

I am old,but am strong

welcome to test

去除oldboy.txt中含old不含oldboy的行

方法一:

[root@git oldboy]# sed '/old[^boy]/d' oldboy.txt 

I am oldboy,my qq is 1234567

welcome to test

方法二:

[root@git oldboy]# sed '/\<old\>/d' oldboy.txt  

I am oldboy,my qq is 1234567

welcome to test

"<>"匹配單個字符

將old不含boy的行替換爲www.baidu.com

[root@git oldboy]# sed 's#old[^boy]#www.baidu.com#g' oldboy.txt 

I am oldboy,my qq is 1234567

I am www.baidu.combut am strong

welcome to test

[root@git oldboy]# sed 's#\<old\>#www.baidu.com#g' oldboy.txt           

I am oldboy,my qq is 1234567

I am www.baidu.com,but am strong

welcome to test


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章