我找到了以下“技巧”来获取文件名及其扩展名。
filename="my file.ext"
name=${filename%.*}
ext=${filename#*.}
您能解释一下这些${filename%.*}
和${filename#*.}
的内容,并提供相关文档的链接吗?
答案 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上有此页面。转到标记为子串删除的部分