如何解决在 Bash 中提取文件名和扩展名
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 解释器。
有更好的想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。