linux (%和%%)(#和##)貪婪匹配規則

先看一個案例,提取文件名:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章