【问题标题】:How to automatically remove the file extension in a file name如何自动删除文件名中的文件扩展名
【发布时间】:2012-10-31 12:52:48
【问题描述】:

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

original:   something.zip
removed version: something

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

something.v2.zip

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

【问题讨论】:

    标签: file bash cut


    【解决方案1】:
     f=file.zip
     echo "${f%.zip}"
    
     file
    

    '%' 是一个参数修饰符,它意味着从变量值的右侧删除'%' 字符之后的任何内容,在本例中为字符串.zip。您可以使用通配符(如

    )使其更通用,以删除任何尾随扩展名
     echo "${f%.*}"
    
     file
    

    【讨论】:

    • 我来晚了,给你+1。
    【解决方案2】:

    如果你想删除从最后一个句点到最后的,试试这个:

    $ f=some.thing.zip
    $ echo "${f%.*}"
    some.thing
    

    【讨论】:

    • 我很幸运。继续发帖! ;-)
    • shellter 比你略胜一筹,但感谢您提供的信息,非常感谢!
    猜你喜欢
    • 1970-01-01
    • 2012-06-29
    • 2021-12-13
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 2014-04-19
    • 1970-01-01
    • 2020-03-25
    相关资源
    最近更新 更多