变量替换以获取bash中的文件名和扩展名

时间:2013-11-23 16:40:13

标签: bash variables substitution

我找到了以下“技巧”来获取文件名及其扩展名。

filename="my file.ext"
name=${filename%.*}
ext=${filename#*.}

您能解释一下这些${filename%.*}${filename#*.}的内容,并提供相关文档的链接吗?

2 个答案:

答案 0 :(得分:1)

这些都是“删除匹配的前缀模式”的形式,请参阅bash man page并搜索Remove matching prefix pattern

答案 1 :(得分:1)

${filename%.*}   
# % Deletes shortest match of pattern ".*" from back of "filename".

${filename#*.}   
# Deletes the pattern '*.' from front of filename i.e. removes the name

Linux Documentation项目在Manipulating Strings上有此页面。转到标记为子串删除的部分