【问题标题】:Linux: Rename File With Exact SubstringLinux:使用精确的子字符串重命名文件
【发布时间】:2016-05-19 00:20:18
【问题描述】:

我有一个 JAR 文件,它的版本号附加在文件名中,我想在每次从外部存储库重建时将它重命名为我的 crontab shell 脚本中的通用名称。例如:“example-1.9.4.jar”应重命名为“example.jar”,以便所有版本共享相同的文件名(在任何给定目录中一次不超过一个版本)。我正在考虑将 Regex 与 rename 命令一起使用,但我不知道如何处理确切的子字符串模式。

如何使用重命名命令从文件名中删除版本号?

【问题讨论】:

    标签: linux shell ubuntu


    【解决方案1】:

    使用rename 实用程序可以做到:

    rename -n 's/-(\d+\.)+jar$/.jar/' *.jar
    

    如果rename 不可用,则使用:

    for f in *.jar; do
        mv "$f" "${f/-[0-9]*jar/.jar}"
    done
    

    【讨论】:

      【解决方案2】:

      你可以试试sed命令,创建这个函数...

      sedreplace() { sed -i "s/$1/$2/" $3; } 
      

      用法:

      sedreplace regexp_needle replacement file
      

      如果您在 shell 脚本中编写此函数,您可以使用 source 命令将其添加到作用域

      【讨论】:

        猜你喜欢
        • 2011-12-27
        • 1970-01-01
        • 2018-07-12
        • 1970-01-01
        • 2013-12-18
        • 1970-01-01
        • 2015-05-19
        • 2014-02-13
        • 2013-02-06
        相关资源
        最近更新 更多