實例:express
[root@zhengjincheng tmp]# cat a.txt ide
aaaaaaaaaaaaaspa
bbbb bbbbbbbbbbbbbbit
i am zjc 1046(88)908 jiayouio
[root@zhengjincheng tmp]#class
結果是:test
[root@zhengjincheng tmp]# cat a.txt sed
aaaaaaaaaaaaamargin
bbbb bbbbbbbbbbbbbbtop
i am zjc 1046(88)908 jiayou
[root@zhengjincheng tmp]#
[root@zhengjincheng tmp]# sed '3s#^.*88)\([0-9].*\) jia.*$#\1#g' a.txt|sed -n '3p'
908
[root@zhengjincheng tmp]#
操做過程(僅供參考):
[root@zhengjincheng tmp]# cat a.txt
aaaaaaaaaaaaa
bbbb bbbbbbbbbbbbbb
i am zjc 1046(88)908 jiayou
[root@zhengjincheng tmp]# sed '3p' a.txt 忘記加參數-n取消默認輸出
aaaaaaaaaaaaa
bbbb bbbbbbbbbbbbbb
i am zjc 1046(88)908 jiayou
i am zjc 1046(88)908 jiayou
[root@zhengjincheng tmp]# sed -n '3p' a.txt 加了參數後恢復正常只輸出匹配的內容
i am zjc 1046(88)908 jiayou
[root@zhengjincheng tmp]# sed -n '3s#^.*88)\(.*)jia.*$#\1#gp' a.txt 轉義符加的不對
sed: -e expression #1, char 27: Unmatched ( or \(
[root@zhengjincheng tmp]# sed '3s#^.*88)\(.*) jia.*$#\1#g' a.txt 轉義符加的仍是不對
sed: -e expression #1, char 26: Unmatched ( or \(
[root@zhengjincheng tmp]# sed '3s#^.*88)\(.*\) jia.*$#\1#g' a.txt 轉義符正確後正常了
aaaaaaaaaaaaa
bbbb bbbbbbbbbbbbbb 但發現默認輸出了默認輸出,緣由是沒有加 -n ?
908
[root@zhengjincheng tmp]# sed -n '3s#^.*88)\(.*\) jia.*$#\1#g' a.txt 加了-n 居然沒內容了
[root@zhengjincheng tmp]# sed -n '3s#^.*88)\([0-9].*\) jia.*$#\1#g' a.txt 還沒找到緣由
[root@zhengjincheng tmp]# sed '3s#^.*88)\([0-9].*\) jia.*$#\1#g'a.txt 還沒找到緣由
aaaaaaaaaaaaa
bbbb bbbbbbbbbbbbbb 還沒找到緣由
908
[root@zhengjincheng tmp]# sed '3s#^.*88)\([0-9].*\) jia.*$#\1#g'a.txt 還沒找到緣由
aaaaaaaaaaaaa
bbbb bbbbbbbbbbbbbb
908
[root@zhengjincheng tmp]# sed 's#^.*88)\([0-9].*\) jia.*$#\1#g' a.txt 還沒找到緣由
aaaaaaaaaaaaa
bbbb bbbbbbbbbbbbbb
908
[root@zhengjincheng tmp]# sed '3s#^.*88)\([0-9].*\) jia.*$#\1#g'a.txt 還沒找到緣由
aaaaaaaaaaaaa
bbbb bbbbbbbbbbbbbb
908
[root@zhengjincheng tmp]# sed -n '3s#^.*88)\([0-9].*\) jia.*$#\1#g'a.txt 仍是以爲是-n
[root@zhengjincheng tmp]#
[root@zhengjincheng tmp]# sed -nr '3s#^.*88)\([0-9].*\) jia.*$#\1#g' a.txt 是沒加-r嗎
sed: -e expression #1, char 32: Unmatched ) or \)
[root@zhengjincheng tmp]# sed -n '3s#^.*88)\([0-9].*\) jia.*$#\1#g' a.txt 還沒找到緣由
[root@zhengjincheng tmp]# sed -n '3s#^.*88)\([0-9].*\) jia.*$#\1#g' a.txt|xargs ls
還沒找到緣由
a.txt p.txt test.txt
[root@zhengjincheng tmp]# sed -n '3s#^.*88)\([0-9].*\) jia.*$#\1#g' a.txt|xargs cat
還沒找到緣由
[root@zhengjincheng tmp]# sed -n '3s#^.*88)\([0-9].*\) jia.*$#\1#g' a.txt
還沒找到緣由
[root@zhengjincheng tmp]# sed '3s#^.*88)\([0-9].*\) jia.*$#\1#g'a.txt 還沒找到緣由
aaaaaaaaaaaaa
bbbb bbbbbbbbbbbbbb
908
[root@zhengjincheng tmp]# sed '3s#^.*88)\([0-9].*\) jia.*$#\1#g' a.txt|sed '3p'
再加一個sed
aaaaaaaaaaaaa
bbbb bbbbbbbbbbbbbb
908
908
[root@zhengjincheng tmp]# sed '3s#^.*88)\([0-9].*\) jia.*$#\1#g' a.txt|sed -n '3p'
取消默認輸出
908
[root@zhengjincheng tmp]# cat a.txt
aaaaaaaaaaaaa
bbbb bbbbbbbbbbbbbb
i am zjc 1046(88)908 jiayou
[root@zhengjincheng tmp]#
[root@zhengjincheng tmp]# sed '3s#^.*88)\([0-9].*\)jia.*$#\1#gp' a.txt 哦,原來忘記了加p
aaaaaaaaaaaaa
bbbb bbbbbbbbbbbbbb
908
908
[root@zhengjincheng tmp]# sed -n'3s#^.*88)\([0-9].*\) jia.*$#\1#gp' a.txt 加個-n 就o了
908
[root@zhengjincheng tmp]#