linux变量截取替换:
//对变量截取
${variable} 对变量值的修正(增删数据),仅仅修改输出后的结果对源值,并不做修改
#变数后对接字符
# ## //截取从前面开始
% %% //截取从后面开始
/ // //替换
[root@dzswj-test ~]# vbird="/home/vbird/testing/testing.x.sh"
[root@dzswj-test ~]#
[root@dzswj-test ~]#echo $vbird
/home/vbird/testing/testing.x.sh
#{variable#} //#从前面开始截取
#{variable##}变数名称后面两个##表示在 ##后面的字串取最长那一段;仅有一个# 表示取最小的那一段
[root@dzswj-test ~]#echo ${vbird##/*/} //删除/*/中间的所有数据包括// ##全部删除
testing.x.sh
[root@dzswj-test ~]#echo ${vbird#/*/} //仅仅删除第一次匹配的 #删除第一次匹配的
vbird/testing/testing.x.sh
#{variable%} //%从后面开始截取
#{variable%%}变数名称后面两个%%表示在 %%前面的字串取最长那一段;仅有一个# 表示取最小的那一段
[root@dzswj-test ~]#echo $vbird
/home/vbird/testing/testing.x.sh
[root@dzswj-test ~]#echo ${vbird%%/*} //从后面开始 * -->/ 最大匹配删除,因此给删完了
[root@dzswj-test ~]#echo ${vbird%/*} //最短删除 /testing.x.sh
/home/vbird/testing
[root@dzswj-test ~]#echo ${vbird%/*/} //最后一个字符开始/而真实的是h
/home/vbird/testing/testing.x.sh
[root@dzswj-test ~]#echo ${vbird%/*h} //最短删除后端h开头
/home/vbird/testing
[root@dzswj-test ~]#
[root@dzswj-test ~]#
[root@dzswj-test ~]#echo ${vbird%%/*h} //全量删除,结尾--开头
[root@dzswj-test ~]#
[root@dzswj-test ~]#echo ${vbird%%/*/} //为匹配到,因此未能删除
/home/vbird/testing/testing.x.sh
#变量截取替换字符
// /
[root@dzswj-test ~]#echo ${vbird}
/home/vbird/testing/testing.x.sh
[root@dzswj-test ~]#
[root@dzswj-test ~]#
[root@dzswj-test ~]#echo ${vbird/testing/TEST} // /最前面匹配的替换
/home/vbird/TEST/testing.x.sh
[root@dzswj-test ~]#
[root@dzswj-test ~]#echo ${vbird//testing/TEST} // //全局匹配替换
/home/vbird/TEST/TEST.x.sh
转载:https://www.cnblogs.com/xiaochina/p/9742505.html