文章目錄
shell 正則表達式
#:表示從左邊算起第一個
%:表示從右邊算起第一個
##:表示從左邊算起最後一個
%%:表示從右邊算起最後一個
換句話來說,#總是表示左邊算起,%總是表示右邊算起。*:表示要刪除的內容,對於#和##的情況,它位於指定的字符(例子中的’/‘和’.’)的左邊,表於刪除指定字符及其左邊的內容;對於%和%%的情況,它位於指定的字符(例子中的’/‘和’.’)的右邊,表示刪除指定字符及其右邊的內容。這裏的’'的位置不能互換,即不能把號放在#或##的右邊,反之亦然。例如:${var%%x*}表示找出從右邊算起最後一個字符x,並刪除字符x及其右邊的字符。看到這裏,就可以知道,其實該命令的用途非常廣泛,上面只是指針文件名和目錄名的命名特性來進行提取的一些特例而已。
注:var是待處理的字符串
刪除從右邊數最後一個.右邊的字符(含.)
${var%%.}
刪除從右邊數第一個.右邊的字符(含.)
${var%.}
刪除從左邊最後一個.的左邊的字符(含.)
${var##.}
刪除從左邊第一個.的左邊的字符(含.)
${var#.}
知道上面規則,提取各種元素就變得很容易
提取 目錄
${var%/}
提取文件名
${var##/}