shell字符串处理


一、计算字符串长度

  1. ${#string}
  2. expr length $string

代码如下(示例):

var1="hello,christy"
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# len=${#var1}
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# echo $len
13
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# var2="hello world"
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# ind=`expr length "$var2"`
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# echo $ind
11

注意:expr length "$var2" 不是单引号,是1旁边的反引号

二、获取子串在字符串中的索引位置

代码如下(示例):
方法1: expr index “$string” substr

[root@iZwz98qdx9tvkj6qz2yq90Z ~]# var1="quicstart is a app"
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# idx=`expr index "$var1" start`
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# echo $idx
5

三、计算子串长度、抽取子串

计算子串长度:expr match $string substr

代码如下(示例):

[root@iZwz98qdx9tvkj6qz2yq90Z ~]# m=`expr match "$str" go`
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# echo $m
2

抽取子串:
方法一:
${string:position} 指定位置开始提取

${string:position:length} 指定位置开始并指定长度

${string:-position} 或者 ${string:(position)} 从尾部开始提取

方法二:
expr substr $string position length 指定索引位置和长度

代码如下(示例):

[root@iZwz98qdx9tvkj6qz2yq90Z ~]# str="i am s softeware tester"
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# va=${str:6}
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# echo $va
softeware tester
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# va1=${str:6:4}
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# echo $va1
sof
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# va2=${str:6:1}
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# echo $va2

[root@iZwz98qdx9tvkj6qz2yq90Z ~]# va3=${str: -5}
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# echo $va3
ester
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# sub=`expr substr "$str" 5 10`
[root@iZwz98qdx9tvkj6qz2yq90Z ~]# echo $sub
s softewa

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值