问题描述
filename=$(basename -- "$fullfile")
extension="${filename##*.}"
filename="${filename%.*}"
或者,您可以关注路径的最后一个“/”而不是“。” 即使您有不可预测的文件扩展名,它也应该工作:
filename="${fullfile##*/}"
解决方法
我想分别获取文件名(不带扩展名)和扩展名。
到目前为止我发现的最佳解决方案是:
NAME=`echo "$FILE" | cut -d'.' -f1`
EXTENSION=`echo "$FILE" | cut -d'.' -f2`
.
这是错误的,因为如果文件名包含多个字符,它就不起作用。如果,假设我有a.b.js
,它将考虑a
and b.js
,而不是a.b
and js
。
它可以很容易地在 Python 中完成
file,ext = os.path.splitext(path)
但如果可能的话,我不希望为此启动 Python 解释器。
有更好的想法吗?