【问题标题】:Bash script for regex file renaming用于正则表达式文件重命名的 Bash 脚本
【发布时间】:2013-08-06 13:38:51
【问题描述】:

我对 Bash 脚本非常陌生,想针对我遇到的以下问题对其进行测试。我目前在表单中的目录中有很多文件

V3_August_'day'_0_'simulations'.pickle

其中'day''simulations' 表示针对不同文件而变化的变量。我想把这些转换成表格

V3_2012_8_'day+1'_0_'simulations'.pickle

遍历这些文件并根据需要重命名它们的脚本是什么?

【问题讨论】:

  • 我不确定,但我认为 bash 脚本不一定是最好的想法/简单/可能(好吧,这可能是可能的,但也可能是丑陋的)。也许你应该尝试使用 Perl。
  • 啊,好吧,出于某种原因,我认为 Bash 可以很好地处理这些事情。我用 Python 写了一些东西来代替。
  • 您能否也发布一些示例文件名?
  • 示例文件名将是 V3_August_1_0_2000.pickleV3_August_5_0_400.pickleV3_2012_8_2_0_2000.pickleV3_2012_8_6_0_400.pickle

标签: bash file directory rename


【解决方案1】:

纯基于 bash 的解决方案:

for x in *.pickle; do
   [[ $x =~ ^([^_]+_[^_]+_)([^_]+)(_.+)$ ]] && mv "$x" \
     "${BASH_REMATCH[1]}$((${BASH_REMATCH[2]} + 1))${BASH_REMATCH[3]}"
done

【讨论】:

    猜你喜欢
    • 2016-08-22
    • 2020-01-19
    • 1970-01-01
    • 2017-10-23
    • 2018-11-12
    • 2013-03-29
    • 2011-11-01
    • 2012-08-31
    相关资源
    最近更新 更多