如果我們拿到一個絕對路徑的文件名,如/home/somebody/demo/long.name.txt,我只想取得long這個文件名shell中的模式匹配運算符非常的好用。
file_name=/home/somebody/demo/long.name.txt
第一步去掉路徑名
file_name=${file_name##/*/}
結果是long.name.txt
第二步去掉後綴名
file_name=${file_name%%.*}
結果就是long了。
模式匹配運算符號:
${var#pattern}最短匹配開頭處,並刪除該部分。
${var##pattern}最長匹配開頭處,並刪除該部分。
${var%pattern}最短匹配結尾處,並刪除該部分。
${var%%pattern}最長匹配結尾處,並刪除該部分。