字符串处理工具
先设立var变量值为/etc/sysconfig/message
]#var=/etc/sysconfig/message
]#echo $var
/etc/sysconfig/message
1、字符串切片
${var:offset:number} 取var变量中的字符串中的字符,offset自左往右第几个字符开始默认0为第一个,number为要取的个数。
${var:5:9} 左边第5个字符开始,取9个字符,结果为sysconfig。
${var: -lengh}取字符串最右的lengh个字符
${var: -7} 取字串最右边的7个字符,结果为message。
2、基于模式取子串
${var#*word} 自左往右,删除字符开头至第一次出现word(包括word)之间的所有字符。
${var#*s} /etc/sysconfig/message,自左往右,删除从开头至第一个s出现(包括s)之间的所有数据。
结果就成了ysconfig/message
${var##*word} 自左往右,删除字符开头至最后一次出现word(包括word)之间的所有字符
${var##*s} /etc/sysconfig/message,自左往右,删除从开头至第一个s出现(包括s)之间的所有数据。
结果就成了age
${var%word*} 自右往左,删除字符开头至第一次出现word之间的所有字符。
${var%%s*} /etc/sysconfig/message,自右往左,删除从开头至第一个s出现(包括s)之间的所有数据。结果就成了/etc/sysconfig/mes
${var%%word*} 自右往左,删除字符开头至最后一次出现word之间的所有字符。
${var%%s*} /etc/sysconfig/message,自右往左,删除从开头至第一个s出现(包括s)之间的所有数据。结果就成了/etc/
3、查找替换
${var/pattern/substi} 查找var所表示的字符串中第一次能被pattern所匹配的字符串,用substi替换
${var//pattern/substi} 查找var所表示的字符串中所有能被pattern所匹配的字符串,用substi替换
${var/#pattern/substi} 查找var所表示的字符串中首行能被pattern所匹配的字符串,用substi替换
${var/%pattern/substi} 查找var所表示的字符串中尾行能被pattern所匹配的字符串,用substi替换
4、查找并删除
${var/parttern} 删除var所表示的字符串中,第一次能被parttern所匹配的字符串。
${var/parttern} 删除var所表示的字符串中,删除所有能被parttern所匹配的字符串。
${var/#parttern} 删除var所表示的字符串中,首行能被parttern所匹配的字符串。
${var/%parttern} 删除var所表示的字符串中,尾行能被parttern所匹配的字符串。
5、字符大小写转换
${var^^} 把var中所有小写字符转换成大写字符。
${var,,} 把var中所有大写字符转换成小写字符。
6、变量赋值
${var:-value} 如果var变量设置为空或未设置,则返回value的值,否则返回var变量的值
${var:+value} 如果var变量设置不为空,则返回value的值
${var:=value} 如果var变量为空,则设置var变量的值为value,否则返回var变量的值
${var:?error_info} 如果var变量为空,则报错误信息error_info,否则返回var变量的值
原文:http://knowledgeq.blog.51cto.com/9549168/1898200