• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Linux Shell 截取字符串的方法示例

    shell中截取字符串的方法很多

    ${var#*/}
    ${var##*/}
    ${var%/*}
    ${var%%/*}
    ${var:start:len}
    ${var:start}
    ${var:0-start:len}
    ${var:0-start}

    格式 说明
    ${string: start :length} 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。
    ${string: start} 从 string 字符串的左边第 start 个字符开始截取,直到最后。
    ${string: 0-start :length} 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。
    ${string: 0-start} 从 string 字符串的右边第 start 个字符开始截取,直到最后。
    ${string#*chars} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
    ${string##*chars} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。
    ${string%*chars} 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。
    ${string%%*chars} 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。

    --------------------------------------------------------------------------------

    下面用几个例子展示一下:

    1) 获得字符串的长度

    语法:

    ${#var}

    示例代码:

    str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
    echo "string : [${str}]"
    
    length=${#str}
    echo "length : [${length}]"
    

    执行结果:

    string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
    length : [61]

    --------------------------------------------------------------------------------

    2) 使用 # 和 ## 获取尾部子字符串

    2.1) # 最小限度从前面截取word

    语法:

    ${parameter#word} 

    示例代码:

    str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
    echo "string : [${str}]"
    
    #分割符为'/'
    substr=${str#*/}
    echo "substr : [${substr}]"
    

    执行结果:

    string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
    substr : [/www.fengbohello.xin3e.com/blog/shell-truncating-string]

    2.2) ## 最大限度从前面截取word

    语法:

    ${parameter##word}

    示例代码:

    str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
    echo "string : [${str}]"
    
    #分割符为'/'
    substr=${str##*/}
    echo "substr : [${substr}]"
    

    执行结果:

    string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
    substr : [shell-truncating-string]

    --------------------------------------------------------------------------------

    3) 使用 % 和 %% 获取头部子字符串

    3.1) % 最小限度从后面截取word

    语法:

    ${parameter%word} 

    示例代码:

    str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
    echo "string : [${str}]"
    
    substr=${str%/*}
    echo "substr : [${substr}]"
    

    执行结果:

    string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
    substr : [http://www.fengbohello.xin3e.com/blog]

    3.2) %% 最大限度从后面截取word

    语法:

    ${parameter%%word}

    示例代码:

    str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
    echo "string : [${str}]"
    
    substr=${str%%/*}
    echo "substr : [${substr}]"
    

    执行结果:

    string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
    substr : [http:]

    --------------------------------------------------------------------------------

    4)使用 ${var:} 模式获取子字符串

    4.1) 指定从左边第几个字符开始以及子串中字符的个数

    语法:

    ${var:start:len}

    示例代码:

    str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
    echo "string : [${str}]"
    
    #其中的 0 表示左边第一个字符开始,7 表示子字符的总个数。
    substr=${str:0:7}
    echo "substr : [${substr}]"
    

    执行结果:

    string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
    substr : [http://]

    4.2) 从左边第几个字符开始一直到结束

    语法:

    ${var:7}

    示例代码:

    str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
    echo "string : [${str}]"
    
    #其中的 7 表示左边第8个字符开始
    substr=${str:7}
    echo "substr : [${substr}]"
    

    执行结果:

    string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
    substr : [www.fengbohello.xin3e.com/blog/shell-truncating-string]

    4.3) 从右边第几个字符开始以及字符的个数

    语法:

    ${var:0-start:len}

    示例代码:

    str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
    echo "string : [${str}]"
    
    #其中的 0-23 表示右边算起第23个字符开始,5 表示字符的个数
    substr=${str:0-23:5}
    echo "substr : [${substr}]"
    

    执行结果:

    string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
    substr : [shell]

    4.4) 从右边第几个字符开始一直到结束

    语法:

    ${var:0-start}

    示例代码:

     

    str="http://www.fengbohello.xin3e.com/blog/shell-truncating-string"
    echo "string : [${str}]"
    
    #其中的 0-6 表示右边算起第6个字符开始
    substr=${str:0-6}
    echo "substr : [${substr}]"
    

    执行结果:

    string : [http://www.fengbohello.xin3e.com/blog/shell-truncating-string]
    substr : [string]

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • shell编程中的字符串截取方法小结
    • Powershell截取字符串并添加省略号的例子
    • Shell脚本8种字符串截取方法总结
    • Shell字符串截取的详细方法
    • Shell字符串截取的实现方法(非常详细)
    上一篇:使用ubuntu搭建公网个人邮件服务器(基于postfix,dovecot,mysql)
    下一篇:一张图让你学会Vim编辑器快捷键
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Linux Shell 截取字符串的方法示例 Linux,Shell,截取,字符串,的,