sh字符串截取

*的位置,代表删除侧边

  1. #号截取,* 删除从左边满足条件的第一组字符及其左边字符,保留右边字符。
    1
    2
    3
    var=http://www.aaa.com/123.htm.
    echo ${var#*//} # www.aaa.com/123.htm.
    echo ${var#*/} # /www.aaa.com/123.htm.
  1. ##号截取,* 删除从右边满足条件的第一组字符及其左边字符,保留右边字符

    1
    2
    3
    var=http://www.aaa.com/123.htm.
    echo ${var##*//} # www.aaa.com/123.htm.
    echo ${var##*/} # 123.htm.
  2. %号截取,* 删除从左边满足条件的第一组字符及其左边字符,保留左边字符

    1
    2
    3
    var=http://www.aaa.com/123.htm.
    echo ${var%//*} # http:
    echo ${var%/*} # http://www.aaa.com
  3. %%号截取,* 删除从右边满足条件的第一组字符及其左边字符,保留左边字符

    1
    2
    3
    var=http://www.aaa.com/123.htm.
    echo ${var%%//*} # http:
    echo ${var%%/*} # http:
  4. 下标截取(开始位置+长度)(负数下标表示从右边数)

    1
    2
    3
    var=http://www.aaa.com/123.htm.
    echo ${var:0:5} # http:
    echo ${var:0:-1} # http://www.aaa.com/123.htm.
  5. 缺省下标(个数)截取

    1
    2
    var=http://www.aaa.com/123.htm.
    echo ${var:5} # www.aaa.com/123.htm.