zoukankan      html  css  js  c++  java
  • Linux Shell 截取字符串

    Linux Shell 截取字符串


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

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

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

    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]

    同步发表:http://www.fengbohello.top/point/p/629

  • 相关阅读:
    P1194 买礼物(建模)
    024 Android 对话框(AlertDialog)的应用(与Android黑马培训班的024相对照学习)
    023 Android 滚动视图(ScollView)
    022 Android 开源项目使用指南
    021 Android 日历视图(Calendarview)
    020 ProgressBar(进度条)、SeekBar(拖动条)与星级评分条(RatingBar)
    019 Android 程序调试技巧汇总
    018 Android 单选按钮(RadioButton)和复选框(CheckBox)的使用
    017 Android ToggleButton(开关函数)与switch (开关按钮)
    016 Android Toast语句应用
  • 原文地址:https://www.cnblogs.com/fengbohello/p/5954895.html
Copyright © 2011-2022 走看看