我正在尝试使用
评论中找到的食谱Extract filename and extension in Bash
即
file="example.tar.gz"
我正在尝试
echo "${file#.*}"
和
echo "${file##.*}"
但都返回
example.tar.gz
与该评论中所写的内容相反(分别为tar.gz和gz)。
Fedora 16 GNU bash,版本4.2.20(1)-release(x86_64-redhat-linux-gnu)
我要提交错误吗?
答案 0 :(得分:2)
你想要的是$ {file#*。}和$ {file ## *。} - 即'*。',而不是'。*'删除是从左边开始的,所以你希望它停在完全停止(而在你的情况下,它是在字符串的开头寻找一个。并且失败)。请参阅this article on bash string operators以获得非常好的和简洁的解释。
答案 1 :(得分:0)