2015-04-21 119 views
1

我有一個名爲CULT_2009_BARRIERS_EXP_Linear.dbf
文件,並想將其重命名爲 CULT_BARRIERS_EXP_Linear.dbf。 這些文件的前綴與它們的前綴始終不同,顯示捕獲時間。 我試圖用正則表達式替換它們。我想測試字符串,如果它包含數字,然後重命名。我已經使用擊重命名文件以下劃線

if [[ $file =~ [0-9] ]]; then rename -v "s/[0-9]//g" * && rename -v s/[_]_/_/ *; 

這部分工作。但我最好喜歡有一個重命名命令,因爲它是很好的做法

+0

可能重複[bash腳本重命名多個文件](http://stackoverflow.com/questions/27589900/bash-script-rename-multiple-files) – tripleee

回答

1

單個重命名命令就足夠了。只需在.def文件實際存儲的目錄上運行以下命令。

rename -v "s/_[0-9]+//g" *.dbf 

[0-9]+匹配一個或多個數字,其中[0-9]將匹配單個數字字符。 +重複上一個令牌一次或多次。

+0

或'rename -v「s/_ [0-9 ] + // g「*' –

+0

或'if [[$ file =〜[0-9]]];然後重命名-v「s/_ [0-9] + // g」*; fi' –

+0

謝謝。所以[0-9]只會替換第一個數字,而+遞歸查找任何數字 –