用于正则表达式文件重命名的Bash脚本

时间:2013-08-05 18:24:56

标签: bash file directory rename

我是Bash脚本的新手,并希望在我遇到的以下问题上进行测试。我目前在目录中有很多文件,格式为

V3_August_'day'_0_'simulations'.pickle

其中'day''simulations'表示针对不同文件更改的变量。我想将这些转换为

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

迭代这些文件的脚本会根据需要重命名为什么?

1 个答案:

答案 0 :(得分:3)

纯粹基于bash的解决方案:

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