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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM