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