一. 得到长度

$x="abcd"
#方法一
$expr length $x
4
# 方法二
$echo ${#x}
4
# 方法三
$expr "$x" : ".*"
4
# expr 的帮助
$STRING : REGEXP   anchored pattern match of REGEXP in STRING

二.查找字串

$expr index  $x  "a"
1
$expr index  $x  "b"
2

三.得到子字符串

# 方法一
# expr <string> startpos length
$expr substr "$x" 1 3
abc
# 方法二
# ${x:pos:lenght}
$echo ${x:1}
bcd
$echo ${x:0:2}
ab
四.匹配正则表达式
# 打印匹配长度
$expr match $x "."
1
$expr match $x "abc"
3
$expr match $x "bc"
0

五. 字符串的掐头去尾

$x=aabbaarealwwvvww
$echo "${x%w*w}"
aabbaarealwwvv
$echo "${x%%w*w}"
aabbaareal
$echo "${x##a*a}"
lwwvvww
$echo "${x#a*a}"
bbaarealwwvvww

六.字符串的替换

$x=abcdabcd
$echo ${x/a/b} # 只替换一个
bbcdabcd
$echo ${x//a/b} # 替换所有
bbcdbbcd

不可以使用 regexp , 只能用 * ? 的文件扩展方式。