加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Linux 字符串处理

发布时间:2020-12-14 01:52:59 所属栏目:Linux 来源:网络整理
导读:字符串处理方式 计算字符串长度 获取子串在字符串中的索引位置 计算子串长度 抽取(截取)字串 1、计算字符串长度,有两种方式 $ ${#string} $ expr length "$string"? ?// 如果 string 里面包含空格,则 $string 加上双引号,建议一直加上 注意:mac没有 ex

字符串处理方式

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

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 开始

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读