linux三剑客试题,有关linux三剑客之sed的一道练习题

1.1 取出a.txt中的908这三个数字:

实例:

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

i am zjc 1046(88)908 jiayou

结果是:

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

i am zjc 1046(88)908 jiayou

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt|sed -n ‘3p‘

908

操作过程(仅供参考):

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

i am zjc 1046(88)908 jiayou

[[email protected] tmp]# sed ‘3p‘ a.txt                           忘记加参数-n取消默认输出

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

i am zjc 1046(88)908 jiayou

i am zjc 1046(88)908 jiayou

[[email protected] tmp]# sed -n ‘3p‘ a.txt         加了参数后恢复正常只输出匹配的内容

i am zjc 1046(88)908 jiayou

[[email protected] tmp]# sed -n ‘3s#^.*88)\(.*)jia.*$#\1#gp‘ a.txt  转义符加的不对

sed: -e expression #1, char 27: Unmatched ( or \(

[[email protected] tmp]# sed  ‘3s#^.*88)\(.*) jia.*$#\1#g‘ a.txt    转义符加的还是不对

sed: -e expression #1, char 26: Unmatched ( or \(

[[email protected] tmp]# sed  ‘3s#^.*88)\(.*\) jia.*$#\1#g‘ a.txt    转义符正确后正常了

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb                 但发现默认输出了默认输出,原因是没有加 -n ?

908

[[email protected] tmp]# sed -n  ‘3s#^.*88)\(.*\) jia.*$#\1#g‘ a.txt 加了-n 竟然没内容了

[[email protected] tmp]# sed -n  ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt 还没找到原因

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘a.txt   还没找到原因

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb                                                       还没找到原因

908

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘a.txt   还没找到原因

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

908

[[email protected] tmp]# sed   ‘s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt    还没找到原因

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

908

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘a.txt   还没找到原因

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

908

[[email protected] tmp]# sed -n   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘a.txt  还是觉得是-n

[[email protected] tmp]# sed -nr  ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt  是没加-r吗

sed: -e expression #1, char 32: Unmatched ) or \)

[[email protected] tmp]# sed -n  ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt  还没找到原因

[[email protected] tmp]# sed -n  ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt|xargs ls

还没找到原因

a.txt p.txt  test.txt

[[email protected] tmp]# sed -n  ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt|xargs cat

还没找到原因

[[email protected] tmp]# sed -n  ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt

还没找到原因

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘a.txt         还没找到原因

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

908

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt|sed ‘3p‘

再加一个sed

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

908

908

[[email protected] tmp]# sed   ‘3s#^.*88)\([0-9].*\) jia.*$#\1#g‘ a.txt|sed -n ‘3p‘

取消默认输出

908

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

i am zjc 1046(88)908 jiayou

[[email protected] tmp]# sed ‘3s#^.*88)\([0-9].*\)jia.*$#\1#gp‘ a.txt  哦,原来忘记了加p

aaaaaaaaaaaaa

bbbb bbbbbbbbbbbbbb

908

908

[[email protected] tmp]# sed -n‘3s#^.*88)\([0-9].*\) jia.*$#\1#gp‘ a.txt 加个-n 就o了

908

原文:http://jinchengzheng.blog.51cto.com/10798482/1843245

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值