【问题标题】:Bulk copy and rename files by replacing a pattern通过替换模式批量复制和重命名文件
【发布时间】:2016-10-08 16:53:58
【问题描述】:

我有大量带有版本标记的文件,例如(Av1.dat、B1v1.dat、..、inZ63v1.dat)。我想复制并重命名它们,只需替换 v1-->v2 即可获得(Av2.dat、B1v2.dat、..、inZ63v2.dat)。最简单的方法是什么?谢谢!

【问题讨论】:

    标签: bash copy rename


    【解决方案1】:

    我还没有测试过,但这应该可以:

    for file in <list of files> ; do
      cp -- "${file}" "$(echo "${file}" | sed -e 's/v1\.dat/v2\.dat/')"
    done
    

    【讨论】:

    • 您可以将命令替换为"${file/v1.dat/v2.dat}"
    • @andlrc:我也考虑过,但最终我选择了我的解决方案,因为它符合 POSIX,而您的解决方案仅适用于 Bash。
    • 我刚刚通过 (unix.stackexchange.com/questions/122605/…) 发现这一行也可以(通过 mmv):mcp "*v1.txt" "#1v2.txt"
    猜你喜欢
    • 1970-01-01
    • 2017-09-19
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-07
    • 2018-04-26
    • 1970-01-01
    相关资源
    最近更新 更多