Linux中,操作系統一般表示文件的方式是:
文件名.擴展名。
這裡介紹幾個符号:
%.* 從右向左非貪婪匹配,取匹配字符串最小值後删除。(适合取文件名,因為删除的内容最少)
%%.* 從右向左貪婪匹配,取匹配字符串最大值之後删除。
#*. 從左向右非貪婪匹配,取匹配字符串最小值後删除。
##*. 從左向右貪婪匹配,取匹配字符串最大值後删除。(适合取文件擴展名,因為删除的内容最長)
在Linux系統中,可以借助%操作符,把文件名稱部分從“文件名稱.擴展名” 格式的文件名提取出來。
比如:
filename="server.log"
name=${filename%.*}
echo file name is $name.
提取文件的擴展名,也就是後綴名可以借助#操作符實現。舉例如下:
filename="sample.jpg"
extension=${filename##*.}
echo file extension is $extension.
工作原理:
從文件名.擴展名這種格式的文件中提取名稱,使用了%的操作符。
${VAR%.*}的含義是:
從變量$VAR中删除位于%右側的通配符(.*)所匹配的字符串,通配符從右向左進行匹配。然後從$VAR中删除匹配結果,展示出輸出。
%屬于非貪婪操作,它從右到左找到匹配通配符的最短結果。%%的行為模式是貪婪匹配,它會匹配符合條件的最長的字符串。
${VAR#*.}的含義是:
從$VAR變量中删除位于#右側的通配符(*.)所匹配的字符串,通配符從左到右進行匹配。
#也有一個相對應的貪婪操作符##。
##從左到右進行貪婪匹配,并且從指定的變量中删除匹配結果。
操作符#用*.從左到右執行非貪婪匹配。
操作符##用*.從左到右執行貪婪匹配。##執行的是貪婪模式,因此總是能夠準确地提取出文件的擴展名,也就是後綴的文件格式。
Linux分支
鼓勵的話語:人在一起,最重要的是相互理解和信任。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!