2017-08-30 56 views
-3

如何批量重命名多個文件?我尋求的是從文件名開頭刪除隨機字符的正則表達式方法?Bash正則表達式:從文件名中刪除字符

例如,假設我有一個目錄

_3cc10c0294ce15295e17e737a1d4dde1_C1W2L08.pptx 
_7beaa0a223aca1d64505e8382275bb8e_C1W2L09-2.05.53-PM.pptx 
_090fd2695e7f30570037a0fae658035a_C1W2L07.pptx 

,並在這裏將以下文件是我所看到:

C1W2L08.pptx 
C1W2L09-2.05.53-PM.pptx 
C1W2L07.pptx 
+1

你試圖解決這個問題的嘗試是什麼? – Inian

+0

@Inian我用手重命名每個文件! – sci9

回答

0

使用rename

rename 's/_.{32}_//' *.pptx 

刪除下劃線和他們之間的32個字符。

+0

Merci爲簡單漂亮的方法。 – sci9

0
for i in *.pptx 
do 
    mv $i ${i#_*_} 
done 

#{var#prefix}將刪除前綴; *匹配一系列字符。查看更多man bash,查找「參數擴展」。

0

此代碼將選擇所有類似結構的文件並刪除它們的前綴。

for file in _[a-z0-9]*pptx; do 
     mv -- "$file" "${file/_*_/}"; 
done 
相關問題