我是Bash脚本的新手,并希望在我遇到的以下问题上进行测试。我目前在目录中有很多文件,格式为
V3_August_'day'_0_'simulations'.pickle
其中'day'
和'simulations'
表示针对不同文件更改的变量。我想将这些转换为
V3_2012_8_'day+1'_0_'simulations'.pickle
迭代这些文件的脚本会根据需要重命名为什么?
答案 0 :(得分:3)
纯粹基于bash的解决方案:
for x in *.pickle; do
[[ $x =~ ^([^_]+_[^_]+_)([^_]+)(_.+)$ ]] && mv "$x" \
"${BASH_REMATCH[1]}$((${BASH_REMATCH[2]} + 1))${BASH_REMATCH[3]}"
done