Linux Bash Shell字串分割substring等
阿新 • • 發佈:2019-01-22
近期在做持續整合專案,因為要做高使用性的平臺,公司專案組各業務線打包流程不盡相同,採用了業務藏入指令碼的方式,原有java可實現的操作寫入了指令碼中
指令碼開發中遇到的問題是:原java中的字串分割操作(substring indexOf等)不知道怎麼處理(比如/a/b/c/d.txt我想知道檔案的名稱)
查詢相關資料得知,shell中可以採用識別符號來做分割字串,包括substring(0,index)和substring(index,last)
${var#*substr}會刪除從0到substr子字串最後出現的位置
${var##*substr}會刪除substr開始到字串結束的位置
${var%substr*}會刪除字串最後一次出現到字串結束的位置的部分
${var%%substr*}會刪除字串第一次出現到結束的部分
a="/a/b/c/d.txt"
b="/"
echo ${a#*$b}
會返回
a/b/c/d.txt
a="/a/b/c/d.txt"
b="/"
echo ${a##*$b}
會返回
d.txt
a="/a/b/c/d.txt"
b="/"
echo ${a%$b*}
會返回
/a/b/c
a="/a/b/c/d.txt"
b="/"
echo ${a%%$b*}
會返回空