打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
shell中字符串操作
shell中字符串操作 2013-11-04 10:52:04

分类: 嵌入式

    我们所遇到的编程语言中(汇编除外)都少不了字符串处理函数吧,
当然shell编程也不例外咯,那么下面我们一起来看下shell中字符串
处理的相关操作吧。大概下面的字符串操作可以分为两种类型,一种
属于变量替换,另一种属于继承unix expr命令吧!
    
1、测试字符串长度

    ${#string}
    expr length $string
    expr "$string" : '.*'
    例:
        #!/bin/bash
        str="asfd"
        echo "${#str}"
        a=expr length $str
        echo "a=$a"
        a=0
        a=`expr "$str" : '.*'`
        echo "a=$a"

2、匹配字符串开头的子串长度
    expr match "$string" '$substring'
    $substring是一个正则表达式.
    expr "$string" : '$substring'
    $substring是一个正则表达式.
    例:
        #!/bin/bash
        str=abcABC123ABCabc
        echo `expr match "$str" 'abc[A-Z]*.2'`     # 8
        echo `expr "$str" : 'abc[A-Z]*.2'`          # 8

3、索引
    expr index $string $substring
    在字符串$string中所匹配到的$substring第一次所出现的位置.
    例:
        #!/bin/bash
        str=abcABC123ABCabc
        echo `expr index "$str" C`     # 6     C 字符的位置.
        echo `expr index "$str" c`     # 3
        

4、提取子串
    ${string:position}
    在$string中从位置$position开始提取子串。
    如果$string是"*"或者"@", 那么将会提取从位置$position开始的位置参数. [1]
    ${string:position:length}
    在$string中从位置$position开始提取$length长度的子串.
    例:
        #!/bin/bash
        str="abcABC123ABCabc"

        echo ${str:0}            #输出abcABC123ABCabc
        echo ${str:3}            #输出ABC123ABCabc
        echo ${str:6:3}            #输出123

5、子串削除
    ${string#substring}
    从$string的开头位置截掉最短匹配的$substring.
    ${string##substring}
    从$string的开头位置截掉最长匹配的$substring.
    例:
        #!/bin/bash
        str="abcABC123ABCabc"

        echo ${str#a*C}            #输出123ABCabc
        echo ${str##a*C}        #输出abc
        echo ${str##a*1}        #输出23ABCabc
    
    ${string%substring}
    从$string的结尾位置截掉最短匹配的$substring.
    ${string%%substring}
    从$string的结尾位置截掉最长匹配的$substring.
    例:
        #!/bin/bash
        str=abcABC123ABCabc

        echo ${str%b*c}     #输出 abcABC123ABCa        
        echo ${str%%b*c}     #输出 a

6、子串替换
    ${string/substring/replacement}
    使用$replacement来替换第一个匹配的$substring.
    ${string//substring/replacement}
    使用$replacement来替换所有匹配的$substring.
    ${string/%substring/replacement}
    如果$substring匹配$string的结尾部分, 那么就用$replacement来替换$substring.
    ${string/#substring/replacement}
    如果$substring匹配$string的开头部分, 那么就用$replacement来替换$substring.
    例:
        #!/bin/bash
        str="abcABC123ABCabc"

        echo ${str/ABC/&&&}        #输出 abc&&&123ABCabc
        echo ${str//ABC/&&&&}    #输出 abc&&&&123&&&&abc
        echo ${str/%abc/&&&}    #输出 abcABC123ABC&&&
        echo ${str/#abc/&&&}     #输出 &&&ABC123ABCabc
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Bash Shell字符串操作小结
linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 )
linux shell 算术运算{expr、bc、dc、(( ))和[ ]}
js中String常用方法详解以及String对象方法扩展
查找两个字符串的最大相同子串,最大交集
MySql常用函数大全讲解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服