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
相關文章
相關標籤/搜索