如何自动删除文件名中的文件扩展名

lac*_*991 2 bash cut file

我试图在bash中创建一个脚本,需要从文件名中删除文件扩展名,如下所示

original:   something.zip
removed version: something
Run Code Online (Sandbox Code Playgroud)

我当时认为我可以使用cut来解决这个问题,但是我担心可能会出现一个文件名有多个句点的情况等等,类似于以下内容

something.v2.zip
Run Code Online (Sandbox Code Playgroud)

话虽如此,我想知道是否有人有任何建议,我可以做什么只是从一行文本/文件名删除最后一个句号和文本后面的文本?任何帮助将不胜感激,谢谢!

she*_*ter 7

 f=file.zip
 echo ${f%.zip}

 file
Run Code Online (Sandbox Code Playgroud)

'%'是一个参数修饰符,它意味着,从'%'字符后面的变量值的右侧删除,在本例中为字符串.zip.你可以通过使用像这样的通配符来删除任何尾随扩展名

 echo ${f%.*}

 file
Run Code Online (Sandbox Code Playgroud)

IHTH