2012-03-02 108 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

对不起。混合点和星号的位置。因为问题关闭不正确。