变量子串的常用操作:
ID | 表达式 | 说明 |
1 | ${#string} | 返回$string的长度 |
2 | ${string:position} | 在$string中,从位置$position之后开始提取子串 |
3 | ${string:position:length} | 在$string中,从位置$position之后开始提取长度为$length子串 |
子串删除 | ||
4 | ${string#substring} | 从变量$string开头开始删除最短匹配$substring子串 |
5 | ${string##substring} | 从变量$string开头开始删除最长匹配$substring子串 |
6 | ${string%substring} | 从变量$string结尾开始删除最短匹配$substring子串 |
7 | ${string%%substring} | 从变量$string结尾开始删除最长匹配$substring子串 |
子串替换 | ||
8 | ${string/substring/replace} | 使用$replace,来替代第一个匹配的$substring |
9 | ${string/#substring/replace} | 如果$string前缀匹配$substring,就用$replace来代替匹配$substring |
10 | ${string/%substring/replace} | 如果$string后缀匹配$substring,就用$replace来代替匹配$substring |
下面来练习:
1.变量字符个数
xiaolangit="hello world" echo ${#xiaolangit} 11
2.从第二个位置开始查
# echo ${xiaolangit:5} # world
3.不包含1的过滤出来
# a=12345 # echo {a:1} # 2345
4.最短匹配
xiaolangit='hehe haha hehehe hehe' echo ${xiaolangit#hehe} haha hehehe hehe
替换功能:(只能替换前面匹配的字母)
# xiaolangit='haha xiaolangit hehe' # echo ${xiaolangit/xiaolangit/langlangit} # haha langlangit hehe
类似的替换:
# xiaolangit='haha xiaolangit haha' # echo ${xiaolangit/#haha/hehe} # hehe xiaolangit haha
结尾的替换
# xiaolangit='haha xiaolangit haha' # echo ${xiaolangit/%haha/hehe} # haha xiaolangit hehe
转载于:https://blog.51cto.com/xiaolangit/1351812