首页 > 其他分享 >在Bash中提取文件名和扩展名

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

时间:2023-11-05 22:00:12浏览次数:49  
标签:扩展名 文件名 js FILE filename Bash

内容来自 DOC https://q.houxu6.top/?s=在Bash中提取文件名和扩展名

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

目前为止找到的最佳解决方案是:

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

这个解决方案是错误的,因为它在文件名包含多个.字符时无法正常工作。假设我有一个文件名为a.b.js,它将考虑ab.js,而不是a.bjs

使用Python可以轻松实现这一点:

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

但是如果可能的话,我不想为了这个启动Python解释器。

有更好的想法吗?


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

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

或者,您可以专注于路径的最后一个'/'而不是'.',这应该可以工作,即使您有不可预测的文件扩展名:

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

您可能需要查看文档:

  • 在网页上的第3.5.3节“Shell参数扩展”部分中。
  • 在bash手册的“参数扩展”部分中。

标签:扩展名,文件名,js,FILE,filename,Bash
From: https://www.cnblogs.com/xiaomandujia/p/17811296.html

相关文章

  • Java根据文本内容,批量修改文件名称
    这两天学到IO流对文件的操作,想起在几年前有几百个按"1,2,3"排序命名的短文,于是产生将其批量命名后整理的想法.这批文本的名称在文件内第十行的位置,前面的是广告和其他不相关的东西本想构造抓到第九行广告语后返回下一行文本的方法,没能实现,只好用了更简单直接的直接抓第十行......
  • Linux系统bash文件运行后出现error: unrecognized arguments中command not found的解
    跑了一个代码,如下图所示,我在配置完环境后运行了bash文件,结果是出现了commandnotfound,稍微找了一下解决方案,最后是在github上一个的仓库问题找到了思路,链接如下:为什么运行bashtrain.sh时一直说我的参数有错?·Issue#450·THUDM/ChatGLM-6B(github.com) 在我的文件是在......
  • zabbix_get -s -bash: zabbix_get: command not found
    zabbix_get找不到命令是因为没有安装上zabbix_get,解决办法:查看是否安装:[root@zabbixserver~]#rpm-qa|grepzabbixzabbix-web-6.4.8-release2.el8.noarchzabbix-server-mysql-6.4.8-release2.el8.x86_64zabbix-release-6.4-1.el8.noarchzabbix-web-mysql-6.4.8-release2......
  • Bash 常用命令总结
    基础常用命令某个命令--h,对这个命令进行解释某个命令--help,解释这个命令(更详细)man某个命令,文档式解释这个命令(更更详细)(执行该命令后,还可以按/+关键字进行查询结果的搜索)Ctrl+c,结束命令TAB键,自动补全命令(按一次自动补全,连续按两次,提示所有以输入开头字母......
  • 文件名: ?Ciwindows\system32 inetsrconfiglapplicationHost.config 错误:无法写入配
    出现原因:出现这个问题,一般是在程序运行的时候更新程序,导致的.解决方案:MicrosoftWindows[版本6.3.9600](c)2013MicrosoftCorporation。保留所有权利。C:\Users\Administrator>netstopiisadmin/yIISAdminService服务正在停止....IISAdminService服务已成功停......
  • 【python】-bash: /usr/local/bin/pip: /usr/bin/python: bad interpreter: No such f
    安装单独的第三方库时没有问题pipinstallpandas但是一旦使用requirement.txt批量安装第三方库时就会出现-bash:/recorddata/rebuydata/hppy/soft/python3/bin/pip3:/usr/local/source/hppy/soft/python3/bin/python3.6:badinterpreter:没有那个文件或目录badinterpreter......
  • bash脚本面试题
    (20231102)面试题:三剑客专题|cnblogs|ZhangHefind找出/test.dir目录下的文件名中包含test关键字的文件并将其全部删除方法一:使用find命令和通配符配合删除文件find/test.dir-typef-name'*test*'-execrm{}+解释:find/test.dir:在/test.dir目录下进行查找......
  • xp改文件名
    XP系统文件显示文件扩展名的步骤1打开文件夹之后,点击左上角主菜单中的“工具”菜单。(如下图)2在弹出来的设置菜单中,点击“文件夹选项”。(如下图)3来到设置窗口,再点击上面功能菜单中的“查看”。(如下图)4找到“隐藏已知文件类型的扩展名”选项,把左边方框中的”√“去掉。(如......
  • linux输入yum后提示: -bash: /usr/bin/yum: No such file or directory的解决方法
    https://blog.csdn.net/moveym/article/details/125569233 一、首先了解Linux系统下这两个命令的区别yum:属于:RedHat系列常见系统有:Redhat、Centos、Fedora等apt-get:属于:Debian系列常见系统:Debian、Ubuntu等#查看当前系统版本cat/etc/redhat-release网易镜像系统官网......
  • -bash: java: command not found笔记
    文章目录场景解决方案找java的方法find命令进行查找根据java进程找寻具体位置场景linux系统执行java命令时报错:-bash:java:commandnotfound。解决方案可能是没有安装java(这种情况比较少)或者安装了java但是没有设置环境变量(一般是这种情况)。找java的方法find命令进行查找......