url="http://www.google.com/test.htm"
${url#word} 最小限度从左边截取word
${url##word} 最大限度从左边截取word
${url%word} 最小限度从右边截取word
${url%%word} 最大限度从右边截取word
示例:
1.#号截取
${url#*/} #左边搜索,删除第一次出现/前面所有内容
结果:www.google.com/test.htm
2.##号截取
${url##*/} #右边搜索,删除最后一次出现/前面所有内容
结果:test.htm
3.%号截取
${url%/*} #右边搜索,删除第一次出现/后面所有内容
结果:http://www.google.com
4.%%号截取
${url%%/*} #右边搜索,删除最后一次出现/后面所有内容
结果:http:
5.字符串拼接
newstr=${str}".txt" #后面直接跟字符串
6.字符串长度
${#url} 结果:29
7.字符串截取
${url:0:5} #左边第0个字符开始,截取5个长度,结果:http:
${url:0-8:4} #右边第8个字符开始,截取4个长度,结果:test
${url:7} #左边第5个字符开始,一直到结尾:www.google.com/test.htm
8. 字符串替换
${string/substring/replacement} 使用$replacement, 来代替第一个匹配的$substring
${string//substring/replacement} 替换所有匹配的$substring
${string/#substring/replacement} 替换前缀
${string/%substring/replacement} 替换后缀
示例:
${url/ht/mm} mmtp://www.google.com/test.htm
${url//ht/mm} mmtp://www.google.com/test.mmm
${url/#http/rtsp} rtsp://www.google.com/test.htm
${url/%htm/txt} http://www.google.com/test.txt
9. 正则表达式提取字符串
正则表达式分组,提取\2字符串,打印:aaaa52646bc7_2017033019.lzo
10. 字符串转化为数字
11. 字符串遍历
shell如何像C中char*一样遍历,如何统计某些字符的个数?
a. sed分割
b. awk分割
注:mac下会提示awk: field separator FS is empty 错误
字符串分割成单个字符再直接统计字符就比较简单了。