我对 Bash 脚本非常陌生,想测试一下我遇到的以下问题。我目前在一个目录中有很多文件,格式为
V3_August_'day'_0_'simulations'.pickle
其中 'day'
和 'simulations'
表示针对不同文件而更改的变量。我想将这些转换成表格
V3_2012_8_'day+1'_0_'simulations'.pickle
迭代这些文件并根据需要重命名它们的脚本会是什么样的?
最佳答案
基于纯 bash 的解决方案:
for x in *.pickle; do
[[ $x =~ ^([^_]+_[^_]+_)([^_]+)(_.+)$ ]] && mv "$x" \
"${BASH_REMATCH[1]}$((${BASH_REMATCH[2]} + 1))${BASH_REMATCH[3]}"
done
关于用于正则表达式文件重命名的 Bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18065083/