4 回答

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊
首先,獲取沒有路徑的文件名:
filename=$(basename?--?"$fullfile")extension="${filename##*.}"filename="${filename%.*}"
或者,您可以將注意力集中在路徑的最后一個(gè)“/”上,而不是“?!奔词鼓胁豢深A(yù)測的文件擴(kuò)展名,它也可以工作:
filename="${fullfile##*/}"
您可能需要查看文檔:
- 在網(wǎng)頁上“
3.5.3殼體參數(shù)擴(kuò)展"
- 在bash手冊中稱為“參數(shù)展開”的部分。

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
~% FILE="example.tar.gz"
~% echo "${FILE%%.*}"
example
~% echo "${FILE%.*}"
example.tar
~% echo "${FILE#*.}"
tar.gz
~% echo "${FILE##*.}"
gz

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
basename filename .extension
basename /path/to/dir/filename.txt .txt
filename

TA貢獻(xiàn)1860條經(jīng)驗(yàn) 獲得超9個(gè)贊
bash-3.2$ FILENAME=somefile.tar.gz bash-3.2$ echo ${FILENAME%%.*}somefile bash-3.2$ echo ${FILENAME%.*}somefile.tar
./somefile.tar.gz
echo ${FILENAME%%.*}
.
FULL_FILENAME=$FILENAME FILENAME=${FULL_FILENAME##*/}echo ${FILENAME%%.*}
)
${variable%pattern} Trim the shortest match from the end ${variable##pattern} Trim the longest match from the beginning ${variable%%pattern} Trim the longest match from the end ${variable#pattern} Trim the shortest match from the beginning
- 4 回答
- 0 關(guān)注
- 1218 瀏覽
添加回答
舉報(bào)