zoukankan      html  css  js  c++  java
  • shell编程:字符串处理方式

    字符串处理方式

    • 计算字符串长度
    • 获取子串在字符串中的索引位置
    • 计算子串长度
    • 抽取(截取)字串

    1、计算字符串长度,有两种方式

      $ ${#string}

      $ expr length "$string"   // 如果 string 里面包含空格,则 $string 加上双引号,建议一直加上

      注意:mac没有 expr命令,xshell登陆 linux服务器可以执行 expr命令

    例1: 

      $ var="java python golang kafka"

      $ len=${#var}

      $ echo len

      打印结果:24

      $ len=`expr length "$var"`  // 这里要用反引号 ` ` 。

      $ echo $len

      打印结果:24 

    2、获取子串在字符串中的索引位置(本质上是 将子串拆分成很多单个的字符,然后看哪个字符最先在字符串中出现,则返回这个字符的索引位置)

      $ expr index $string $substring

    例2:

      $ var="quickstart is a app"

      $ ind=`expr index "$var" start`

      $ echo $ind

      打印结果:6    // 下标从 1 开始数

      $ ind=`expr index "$var" uniq`

      $ echo $ind

      打印结果:1     // 'q' 这个字符最先出现在字符串中,并且位置是 1

    3、获取子串的长度

      expr match $string substr

    例3:

      $ var="quickstart is a app"

      $ sub_len=`expr match "$var" app`     // 需要从头匹配,并且匹配成功,否则返回 0

      $ echo $sub_len   

      打印结果:0

      $ sub_len=`expr match "$var" quic`   // 正常匹配

      $ echo $sub_len

      打印结果:4

      $ sub_len=`expr match "$var" qui.*`      // 获取整个字符串的长度

      $ echo $sub_len

      打印结果:19

      $ sub_len=`expr match "$var" quik`   // 匹配失败

      $ echo $sub_len

      打印结果:0

    4、抽取子串,五种方式

      $ ${string:position}   // 从 string 的 position 开始

      $ ${string:position:length}   // 从 string 的 position 开始,取 length 个长度的字符

      $ ${string: -position}    // 从右边开始匹配,注意":" 和 "-" 之间有空格

      $ ${string:(position)}    // 从左边开始匹配

      $ expr substr $string $position $length  // 从 position 开始,匹配长度为length

    例4:

      $ var="java python golang kafka"

      $ substr1=${var:3}    // 下标从 0 开始,下标为 3 的字符刚好是 a

      $ echo $substr1

      打印结果:a python golang kafka

      $ substr2=${var:3:5}

      $ echo $substr2

      打印结果:a pyt

      $ substr3=${var: -5}    // 最后一个字符为 -1。  等价于:substr3=${var:(-5)} 

      $ echo $substr3

      打印结果:kafka  

      $ substr3_1=${var: -5:2}     // 扩展一个

      $ echo $substr3_1

      打印结果:ka

      $ substr4=${var:(5)}    // 从左边第5个开始取

      $ echo $substr4

      打印结果:python golang kafka 

      $ substr5=`expr substr "$var" 10 5`     // expr 下标从 1 开始,然后从第 10 个开始取

      $ echo $substr5

      打印结果:on go

    注意:expr 方式下标从 1 开始; ${ }方式下标从 0 开始

  • 相关阅读:
    May 1 2017 Week 18 Monday
    April 30 2017 Week 18 Sunday
    April 29 2017 Week 17 Saturday
    April 28 2017 Week 17 Friday
    April 27 2017 Week 17 Thursday
    April 26 2017 Week 17 Wednesday
    【2017-07-04】Qt信号与槽深入理解之一:信号与槽的连接方式
    April 25 2017 Week 17 Tuesday
    April 24 2017 Week 17 Monday
    为什么丑陋的UI界面却能创造良好的用户体验?
  • 原文地址:https://www.cnblogs.com/soymilk2019/p/11673031.html
Copyright © 2011-2022 走看看