一、计算字符串长度
- ${#string}
- 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