zoukankan      html  css  js  c++  java
  • shell 字符截取

    Linux 的字符串截取很有用。有八种方法。

    假设有变量 var=http://www.aaa.com/123.htm.

    # 读sharp 谐音 杀:

    ${var#*//}  杀掉//左边的,保留右边的

     %在c语言中有站位之意,如%d,%s

    ${var%*//}

    取得//右边的字符

    1. # 号截取,删除左边字符,保留右边字符。

    echo ${var#*//}

    其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
    即删除 http://
    结果是 :www.aaa.com/123.htm

    2. ## 号截取,删除左边字符,保留右边字符。

    echo ${var##*/}

    ##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符
    即删除 http://www.aaa.com/

    结果是 123.htm

    3. %号截取,删除右边字符,保留左边字符

    echo ${var%/*}

    %/* 表示从右边开始,删除第一个 / 号及右边的字符

    结果是:http://www.aaa.com

    4. %% 号截取,删除右边字符,保留左边字符

    echo ${var%%/*}

    %%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符
    结果是:http:

    5. 从左边第几个字符开始,及字符的个数

    echo ${var:0:5}

    其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
    结果是:http:

    6. 从左边第几个字符开始,一直到结束。

    echo ${var:7}

     

    其中的 7 表示左边第8个字符开始,一直到结束。
    结果是 :www.aaa.com/123.htm

    7. 从右边第几个字符开始,及字符的个数

    echo ${var:0-7:3}

    其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。
    结果是:123

    8. 从右边第几个字符开始,一直到结束。

    echo ${var:0-7}

    表示从右边第七个字符开始,一直到结束。
    结果是:123.htm

    注:(左边的第一个字符是用 0 表示,右边的第一个字符用 0-1 表示)

    ci@clinux:~$ var=http://www.aaa.com/123.htm
    ci@clinux:~$ echo var
    var
    ci@clinux:~$ echo $var
    http://www.aaa.com/123.htm
    ci@clinux:~$ echo ${var#*//}
    www.aaa.com/123.htm
    ci@clinux:~$ echo ${var#*/}
    /www.aaa.com/123.htm
    ci@clinux:~$ echo ${var##*/}
    123.htm
    ci@clinux:~$ echo ${var%*/}
    http://www.aaa.com/123.htm
    ci@clinux:~$ echo ${var%/}
    http://www.aaa.com/123.htm
    ci@clinux:~$ echo ${var%/*}
    http://www.aaa.com
    ci@clinux:~$ echo ${var%%/*}
    http:
    ci@clinux:~$ echo ${var:1:1}
    t
    ci@clinux:~$ echo ${var:3:5}
    p://w
    ci@clinux:~$ echo ${var::5}
    http:
    ci@clinux:~$ echo ${var:5}
    //www.aaa.com/123.htm
    ci@clinux:~$ echo ${var:0-2:5}
    tm
    ci@clinux:~$ echo ${var:0-6:5}
    23.ht
    ci@clinux:~$ echo ${var:0-6}
    23.htm
    ci@clinux:~$ 
  • 相关阅读:
    Mac 下 IDEA 无法启动的问题
    oracle impdp
    张亚琴:人生是赛场不是战场,人生是一个没有终点的赛场,永远都在起跑线上
    sc抽象组件工作
    Jenkins 实现gitLab提交代码立即利用Jenkins发版
    Jenkins 修改admin密码
    docker 安装nginx,并配置vue项目在nginx启动
    No 'Access-Control-Allow-Origin' header is present on the requested resource 是跨域的问题吗?
    Vue个别vue文件不能热加载
    IVT虚拟化支持
  • 原文地址:https://www.cnblogs.com/conncui/p/substring.html
Copyright © 2011-2022 走看看