我正在尝试在bash中创建一个需要从文件名中删除文件扩展名的脚本,如下所示
original: something.zip
removed version: something
我以为我可以使用cut来解决这个问题,但是我担心可能会出现一个文件名有多个句点的情况等等,类似于以下内容
something.v2.zip
话虽如此,我想知道是否有人有任何建议我可以做些什么来从一行文本/文件名中删除最后一段时间和文本后面的文字?任何帮助将不胜感激,谢谢!
答案 0 :(得分:7)
f=file.zip
echo ${f%.zip}
file
'%'是一个参数修饰符,它意味着,从'%'字符后面的变量值的右侧删除,在本例中为字符串.zip
。您可以通过使用像
echo ${f%.*}
file
IHTH
答案 1 :(得分:2)
如果要将上一个句点删除到结尾,请尝试以下操作:
$ f=some.thing.zip
$ echo ${f%.*}
some.thing