expr 可以用来匹配字符串的长度
语法如下:
expr “string=” : ‘ ’
其中“:”号前后都有空格的否则不会起作用的。
expr match "$string" '$substring'
$substring 是一个正则表达式
expr "$string" : '$substring'
$substring 是一个正则表达
expr index $string $substring
匹配到子串的第一个字符的位置.
${string:position}
在 string 中从位置$position 开始提取子串从指定位置提取字符串这个位置多是一些数字如果$string 为"*"或"@",那么将提取从位置
$position 开始的位置参数,[1]
如果$string 为"*"或"@",那么将提取从位置$position 开始的位置参数,[1]
${string:position:length}
在 string 中从位置$position 开始提取$length 长度的子串.如果$string 参数为"*"或"@",那将最大的提取从$position 开始的$length 个位置参数.
这个意思是从某个指定位置这个问题可以是字符也可以是数字提取任意长度的字符呀 。
反向提取字符串那么我们可以用(-数字)来反向提取指定为位置的字符串啊使用圆括号或者添加一个空格来转义这个位置参数.
如果$string 参数为"*"或"@",那将最大的提取从$position 开始的$length 个位置参数.
经典例子:
#!/bin/bash
stringZ=abcABC123ABCabc
echo `expr "$stringZ" : 'abc[A-Z]*.2'`
echo `expr "$stringZ" : 'abc[A-Z]*.2'`
echo `expr match "$stringZ" 'abc[A-Z]*.2'`
echo `expr "$stringZ" : 'abc[A-Z]*.2'`
echo `expr index $stringZ C3`
echo ${stringZ:10}
echo ${stringZ:c:10}
echo ${stringZ:5:4}
echo ${stringZ:(-2)}
阅读(5969) | 评论(0) | 转发(0) |