zoukankan      html  css  js  c++  java
  • linux正则表达式企业级深度实践案例1

    linux正则表达式结合三剑客企业级实践:

    1、取系统ip

    [root@redhat~]#  ifconfig  eth0

    解答:

    替换命令:

    sed  's#支持正则位置##g'  file

    先取第2行:

    [root@redhat~]#  ifconfig  eth0 | sed  -n  ' 2p '

    inet  addr:192.168.31.135     Bcast:192.168.31.255     Mask:255.255.255.0

    ^ .*匹配,如果不给目标前的固定结尾就会匹配到行尾,结果就匹配一行

    [root@redhat~]#  ifconfig  eth0 | sed  -n  ' 2p ' | sed  ' s#^ .*##g '

    对目标前的内容匹配替换:

    [root@redhat~]#  ifconfig  eth0 | sed  -n  ' 2p ' | sed  ' s#^ .*dr :##g '

    192.168.31.135     Bcast:192.168.31.255     Mask:255.255.255.0

    对目标后的内容匹配替换:

    [root@redhat~]#  ifconfig  eth0 | sed  -n  ' 2p ' | sed  ' s#^ .*dr :##g ' | sed  ' s#B.*$##g '

    192.168.31.135  <==这里结尾有两个空格

    [root@redhat~]#  ifconfig  eth0 | sed  -n  ' 2p ' | sed  ' s#^ .*dr :##g ' | sed  ' s#        B.*$##g '

    192.168.31.135  <==这里结尾无空格

    sed  -n  's#支持正则位置##gp'  file

    inet  addr:192.168.31.135  Bcast:192.168.31.255  Mask:255.255.255.0

    处理技巧:

    匹配需要的目标(获取的字符串如上文的ip)前的字符串一般用以..开头(^.*)来匹配开头,匹配的结尾写上实际的字符,

    如:  " ^.*addr: " 表达式就匹配 "    inet  addr: "  ,而处理需要的目标后的内容一般在匹配的开头写上实际的字符,而结尾是用以...结尾(.*$)来匹配。如:Bcast: .*$ 部分表示匹配 "Bcast: 192.168.31.255  Mask:255.255.255.0"。

    方法2:

    替换命令1:

    sed  -nr  ' s#支持正则位置##gp '  file

    指定行号:s前的2为行号

    sed  -nr  ' 2s#支持正则位置##gp '  file

    解答:

    [root@redhat~]#  ifconfig  eth0 | sed  -n  ' s#^ .*adrr :##g ' | sed  -n  ' s#  Bc.*$##gp '

    192.168.31.135

    [root@redhat~]#  ifconfig  eth0 | sed  -n  ' 2s#^ .*adrr :##g ' | sed  -n  ' s#  Bc.*$##gp '

    192.168.31.135

    sed的后向引用:

    sed  -n  ' s#() ()#12#gp '  file

    当在前面匹配部分用小括号的时候,第一个括号内容,可以在后面部分用1输出。

    第一个括号内容,可以在后面部分用2输出。

    [root@redhat~]#  echo  I  am  redhat  linux.  >a.txt

    [root@redhat~]#  cat  a.tet

    I  am  redhat  linux.

    [root@redhat~]#  sed  -n  ' s#^ .*m  ##gp '  a.txt

    redhat  linux.

    [root@redhat~]#  sed  -nr  ' s#^ .*m  (.*)  l.*$#l#gp '  a.tet

    redhat

    [root@redhat~]#  ifconfig  eth0 | sed  -nr  ' s#^ .*dr:(.*)  B.*$#l#gp '

  • 相关阅读:
    asp.net购物车,订单以及模拟支付宝支付(四)---模拟支付宝支付
    asp.net购物车,订单以及模拟支付宝支付(三)---提交订单
    HDU 1525 Euclid's Game (博弈)
    Codeforces 828B Black Square(简单题)
    CodeForces 816B Karen and Coffee(前缀和,大量查询)
    Ubuntu 16.04 LTS安装 TeamViewer
    Ubuntu下安装codeblocks
    Ubuntu系统的安装Sublime3
    关于戴尔没有活动分区,遇到了“Windows安装程序无法将windows配置为在此计算机的硬件上运行”提示等
    电脑只能上QQ,不能上网浏览网站怎么解决
  • 原文地址:https://www.cnblogs.com/axzq/p/9579013.html
Copyright © 2011-2022 走看看