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