2012-03-02 109 views
0

我試圖使用在註釋中發現的食譜上擊參數擴展和文件名

Extract filename and extension in Bash

也就是說,對於

file="example.tar.gz" 

我試圖做

echo "${file#.*}" 

and

echo "${file##.*}" 

但都返回

example.tar.gz 

,而不是發生了什麼(分別爲tar.gz的和GZ)寫的評論。

的Fedora 16 GNU的bash,版本4.2.20(1)-release下(x86_64-紅帽Linux的GNU的)

要我提交的bug?

回答

2

你想要的是$ {file#*。}和$ {file ## *。} - 即'*。',而不是'。*'刪除是從左邊開始的,所以你希望它在完全停止(而在你的情況下,它正在尋找一個字符串的開頭和失敗)。請參閱this article on bash string operators以獲得非常好的簡潔解釋。

0

對不起。混合點和星號的位置。因爲問題關閉不正確。