在Bash中提取文件名和扩展名

ibz

我想分别获取文件名(不带扩展名)和扩展名。

到目前为止,我发现的最佳解决方案是:

NAME=`echo "$FILE" | cut -d'.' -f1`
EXTENSION=`echo "$FILE" | cut -d'.' -f2`

这是错误的,因为如果文件名包含多个.字符,它将不起作用假设我有a.b.js,它将考虑ab.js,而不是a.bjs

可以使用Python轻松完成

file, ext = os.path.splitext(path)

但如果可能的话,我不希望为此而启动Python解释器。

还有更好的主意吗?

面馆

首先,获取不带路径的文件名:

filename=$(basename -- "$fullfile")
extension="${filename##*.}"
filename="${filename%.*}"

另外,您可以专注于路径的最后一个“ /”而不是“。”。即使您具有无法预测的文件扩展名,它也应能正常工作:

filename="${fullfile##*/}"

您可能需要检查文档:

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在使用bash更改文件名和扩展名的同时将多个文件移动到目录中?

在bash中提取文件名,不包含路径和扩展名

在Python中从文件名提取扩展名

在Ruby中获取文件名和扩展名

从熊猫文件名中提取文件扩展名

使用正则表达式提取文件名而无需扩展名的url

XSLT:提取文件名,不带扩展名

Bash脚本提取包含特定扩展名文件的目录

提取不带扩展名的文件名-Ansible

从向量中提取具有扩展名的文件名

如何从完整路径中提取不带扩展名的文件名?

提取具有扩展名URL的文件名

提取不带扩展名R的csv文件名

从工作目录中提取文件扩展名并检查条件

从Bash中的文件名中提取信息

Bash脚本从ls -l结果中提取文件名

提取带有扩展名的图像文件名-JS

在bash shell脚本中,如何重命名多个文件,仅保留数字和原始文件名的扩展名?

如何从PowerShell中的扩展名类型数组中提取/匹配文件类型扩展名

从 Bash 中的路径中提取文件名

Bash 文件扩展名

从路径中提取文件夹、文件名和扩展名

perl 如何获取文件名和扩展名

设置文件名和扩展名的问题

从 url 中提取带扩展名的文件名

如何从 Julia 中的文件名中提取扩展名?

从包含文件路径和其他随机文本的字符串中提取带有扩展名的图像文件名

从目录中提取文件名并在excel中根据其扩展名进行分类| 使用 Python

从字符串中提取文件扩展名