bash的字符串操作(学习整理)

 字符串示例:

     string=abcas2221111c

 (1)字符串长度

          echo ${#string}  # 13

          echo `expr length $string` #13

          echo `expr "$string" : '.*'` #13

  (2) 字串起始位置匹配子字串的长度

        命令:

            expr match "$string" '$substring'

            expr "$string" : '$substring' 

             ##$substring是一个正则表达式

       示例:

         echo `expr match "$string" '[a-z]*..2'` #8

         echo `expr "$string" : '[a-z]*..2'` #8

   (3)字串匹配子字串的第一个字符的位置

     命令:

         expr index $string $substring

     示例:

        echo `expr index "$string" 222` #6

        echo `expr index "$string" 2bc` #2--在字串$string中先匹配到'b'字符其位置为2,'2'和'c'匹配都在其之后。

     (4) 获取子字串

        1、索引及位置提取方式

             ${string:$pos}  ##在字串$string中从索引位$pos处开始提取子字串。

             ${string:$pos:$length} ##在字串$string中从索引位$pos处开始提取$length长度的子字串。

       注:此处string换做"*"或"@",或其它数组变量,可以提取从索引位置为$pos起始的元素,到向后数,个数为$length的所有元素;不指定$length时,提取从$pos开始的直到最后的所有元素。

             $pos:索引从左往右,0起始。

              此处只做字符串的示例:

               echo ${string:2} #cas2221111c

                echo ${string:4:3} #s22

              此处亦可反向截取

                echo ${string:(-5)} #1111c

                echo ${string: -5} #1111c ###此方式注意表达式内-5前必须添加一空格

          expr substr $string $pos $length  ##在字符串$string中从位置$pos开始提取$length长度的子字串。

                 $pos:位置值指字串从左往右,1起始

                  示例:   

                echo `expr substr $string 2 3` #bca

        2、 使用字串正则表达式提取

        expr match "$string" '\($substring\)'

        expr "$string" : '\($substring\)'

         ##从字串$string开始,提取匹配$substring的子字串,$substring为一个正则表达式。

      示例:

         echo `expr match "$string" '\([a-z]*..[0-9]\)'` #abcas222

         echo `expr "$string" : '\([a-z]*..[0-9]\)'` #abcas222

     (5) 字串删除与替换

          可参照另一篇博客日志:

          http://bluebellecho.blog.163.com/blog/static/21258528220132611853936/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值