zoukankan      html  css  js  c++  java
  • shell变量

    01、字符串替换"/" 和"//"

    单个"/"只会替换首个匹配到的字符串:{var/old/new}
    
    如果需要替换所有匹配到的字符,应该通过${var//old/new}
    
    
    [root@ ~]# net='www.baidu.com.www.com'
    You have new mail in /var/spool/mail/root
    [root@ ~]# echo $net
    www.baidu.com.www.com
    [root@~]# echo ${net/ww/tt}
    ttw.baidu.com.www.com
    [root@ ~]# echo ${net//ww/tt}
    ttw.baidu.com.ttw.com

    除此之外,还有两种专门针对字符串开头和结尾的替换方式

    只替换开头匹配的字符串${var/#pattern/sub}

    只替换结尾匹配的字符串${var/%pattern/sub}

    02、删除字符串

    删除字符串
    其实学会了替换字符串删除字符串就更简单了,只需将替换部分写成空即可,即${variable
    /pattern/null},例如将net的第一个.删除,只需 [Neptuneyt]$ echo ${net/./} wwwbaidu.com [Neptuneyt]$ echo ${net/.} #最后一个/可以不用写 wwwbaidu.com
    若要删除所有匹配到的只需即${variable//pattern},例如将net的.都删除,只需 [Neptuneyt]$ echo ${net//.} wwwbaiducom

    同理,只删除开头或者结尾匹配到的字符也是类似操作,这里就不赘述了。

    03、字符串长度

    想要知道"www.baidu.com"的变量net的长度十分简单,通过${#net}即可获取。
    [root@ ~]# net=`netstat -ntpl|grep mysqld|grep LISTEN|awk '{print $4}' |grep ":${my_port}$"`
    You have mail in /var/spool/mail/root
    [root@ ~]# echo $net
    :::3308
    [root@ ~]# echo ${#net}
    7
    [root@ ~]#

    04、字符串截取

    $ net="www.baidu.com"
    $ # 从第4个字符截取到baidu
    $ echo ${net:4:5} #从第4个字符.开始截取5个字符
    baidu
    $ # 截取baidu.com
    $ echo ${net:4}   #起始位置后不接截取字符长度则默认截取之后所有的
    baidu.com
    $ # 用倒数截取com
    $ echo ${net:0-3} #从倒数第三个字符截取到末尾
    com
  • 相关阅读:
    模拟电梯运行
    用户需求调研报告
    NABC需求分析
    大道至简---读书随笔3
    二维环形数组求最大子数组和
    结对开发之求最大数组溢出问题
    结对开发之环形数组
    结对开发之电梯调度
    我看“微软拼音”
    团队开发项目之典型用户和用户场景
  • 原文地址:https://www.cnblogs.com/igoodful/p/13632715.html
Copyright © 2011-2022 走看看