2013-08-05 76 views
2

我对Bash脚本非常陌生,并且想对以下问题进行测试。我现在有一个目录中的很多文件的形式正则表达式文件重命名的Bash脚本

V3_August_'day'_0_'simulations'.pickle 

其中'day''simulations'表示,对于不同的文件改变的变量。我想这些转换成表格

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

什么会需要一个脚本,遍历这些文件,重命名它们作为呢?基于

+0

我不知道,但我不认为一个bash脚本必然是最好的主意/易/可能(OK,那也可能是可能的,但可能也很难看)。也许你应该尝试使用Perl。 – BenjiWiebe

+1

好吧,出于某种原因,我认为Bash对于处理这些事情是很好的。我用Python写了一些东西来代替它。 – rwolst

+0

你还可以发布一些示例文件名吗? – mohit

回答

3

纯bash的解决方案:

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