先看一個案例,提取文件名:
file_txt=”example.txt”
name=${ file_txt%.*}
echo File name is :$name
提取擴展名:
extension=${file_txt#*.}
echo Extension is : $ extension
${var%.*}含義:從$var中刪除位於%右邊的通配符匹配的字符串,通配符從左開始匹配;
var=${}給var賦值,則通配符就會匹配從右到左匹配到.txt,因此從$var中刪除匹配結果,即留下“example”。
%和%%匹配原則:
都是從右到左匹配。
%非貪婪規則
例:var=a.b.c.d
echo ${var%.*} #輸出a.b.c
%%貪婪規則:
echo ${var%%.*} #輸出a
${var#*.}
刪除位於#右邊的的通配符,即前例中使用的*.所匹配的字符串,通配符從左到右匹配。類似%,且也有##貪婪操作符。
echo ${var#*.} #輸出b.c.d
echo ${var##*.} #輸出d
例:
提取域名不同部分;
假設url=www.666.com
echo ${url%.*} #www.666
echo ${url%%.*} #www