• shell中字符串操作【转】


    转自:http://blog.chinaunix.net/uid-29091195-id-3974751.html

    我们所遇到的编程语言中(汇编除外)都少不了字符串处理函数吧,
    当然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
  • 相关阅读:
    Map Wiki -- proposed by Shuo Ren
    Smart Disk -- proposed by Liyuan Liu
    ubuntu 16.04下如何打造 sublime python编程环境
    manjaro linux没有ll等命令的解决办法
    python学习-命名规则
    python-unitetest-unittest 的几种执行方式
    python-pytest学习(一)- 简介和环境准备
    Python+request+unittest学习(一)- 读取文本出现 锘 * 系列乱码错误(UTF-8 BOM问题)的原因及解决方法
    Python+Selenium框架版(十)- unittest执行方法之discover()方法
    Python+Selenium框架版(九)- unittest执行法之makeSuit()
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/5681899.html
Copyright © 2020-2023  润新知