2013-08-05 79 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