3

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

original:   something.zip
removed version: something

我在想我可以为此使用 cut ,但我担心可能会出现一种情况,即文件名可能包含多个句点等,类似于以下内容

something.v2.zip

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

4

2 回答 2

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

 file

'%' 是一个参数修饰符,它意味着从变量值的右侧删除 '%' 字符之后的任何内容,在本例中为 string .zip。您可以通过使用通配符来使其更通用以删除任何尾随扩展名

 echo "${f%.*}"

 file
于 2012-11-12T03:24:28.783 回答
2

如果要删除从最后一个期间到结尾的 ,请尝试以下操作:

$ f=some.thing.zip
$ echo "${f%.*}"
some.thing
于 2012-11-12T03:27:17.280 回答