绝对路径的文件名去掉目录或者去掉后缀名的简单做法

如果我们拿到一个绝对路径的文件名,如/home/somebody/demo/long.name.txt,我只想取得long这个文件名shell中的模式匹配运算符非常的好用。

file_name=/home/somebody/demo/long.name.txt

第一步去掉路径名

file_name=${file_name##/*/}

结果是long.name.txt

第二步去掉后缀名

file_name=${file_name%%.*}

结果就是long了。

 

模式匹配运算符号:

${var#pattern}最短匹配开头处,并删除该部分。

${var##pattern}最长匹配开头处,并删除该部分。

${var%pattern}最短匹配结尾处,并删除该部分。

${var%%pattern}最长匹配结尾处,并删除该部分。

你可能感兴趣的:(shell,File)