sitemayerlee's blog

在努力中淬炼人格 在奋斗中享受欢乐 在辛劳中塑造尊严 在坚持中超越自我

  • 博客访问: 455218
  • 博文数量: 32
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1153
  • 用 户 组: 普通用户
  • 注册时间: 2013-08-02 20:10
个人简介

目前现状屌丝IT人一只,未来路在何方,正在探索中……

文章分类

全部博文(32)

文章存档

2013年(32)

我的朋友
微信关注

IT168企业级官微



微信号:IT168qiye



系统架构师大会



微信号:SACC2013

订阅
热词专题
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

   
阅读(117767) | 评论(1) | 转发(4) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册