根據擴展名分割文件名

實例1ide

 

[root@localhost ~]# file_jpg="sample.jpg"spa

[root@localhost ~]# name=${file_jpg%.*}字符串

[root@localhost ~]# echo File name : $nameget

File name : sampleit


爲了從「名稱.擴展名」這種格式的文件名中提取名稱,咱們使用了%操做符class

${VAR%.*}的含義是:變量

從$VARIABLE中刪除位於%右側的通配符(在實例中是.*)所匹配的字符串。通配符從右向左進行匹配。
擴展

給VAR複製,VAR=sample.jpg。那麼,通配符從右向左就會匹配到.jpg,所以,從$VAR中刪除匹配結果,就會獲得輸出"sample"。file


%屬於非貪婪(non-greedy)操做。它從右道左找出匹配通配符的最短結果。還有另外一我的操做符%%,與%類似,但行爲模式確實貪婪的(greedy),這意味着它會匹配符號條件的最長的字符串im


實例1.1


[root@localhost ~]# VAR=zhaonimei.nimei.mei

[root@localhost ~]# echo ${VAR%.*}

zhaonimei.nimei

[root@localhost ~]# echo ${VAR%%.*}

zhaonimei

————————————————————————————————————————————

實例2


[root@localhost ~]# file_jpg="sample.jpg"

[root@localhost ~]# name=${file_jpg#*.}

[root@localhost ~]# echo File name : $name

File name : jpg


#操做符從文件名中提取擴展名。這個操做符與%相似,不過求值方向是從左向右。 ${VAR#*.}的含義是:


從$VARIABLE中刪除位於#右側的通配符(即在實例中使用的*.)所匹配的字符串。通配符從左向右進行匹配。

和%%相似,#也有一個相對應的貪婪操做符##

##從左向右進行貪婪匹配,並從指定變量中刪除匹配結果。


實例2.1


[root@localhost ~]# VAR=zhaonimei.nimei.mei

[root@localhost ~]# echo ${VAR##*.}

mei

相關文章
相關標籤/搜索