重命名一堆文件但保留數字部分

重命名一堆文件但保留數字部分

我有一堆這樣的文件:

pic100.png
pig102.png
box103a.png
superb103b.png
px103c.png
rotor110 - new.png
ready1323 (yellow car).png
motorhome1036x red circle.png
...

因此,您可以注意到文件可能有 3 個部分:

  • 可以是任何字串的前綴
  • 可能包含「a」、「b」等後綴的數字。
  • 可選結尾,始終是一個字串並以空格開頭,例如“(黃色汽車)”、“紅色圓圈”等。

我需要的是這樣的:我希望在一次操作中:

  • 將前綴更改為我想要的前綴
  • 保留數字和後綴(a、b、c...)(如果有)
  • 擺脫結局

使用第一個例子,我可能想將其轉換為

object100.png
object102.png
object103a.png
object103b.png
object103c.png
object110.png
object1323.png
object1036x.png

我怎麼做?正如你所看到的,我唯一保留的是數字和後綴“a,b,c”(當有一個時)...

為了簡單起見,該命令必須對給定目錄中的所有檔案進行操作。

提前致謝。

答案1

執行此類操作的標準方法是使用 sed 產生新檔案名稱:

ls | while read file; do
     new=$( echo $file | sed 's/[^0-9]*\([^ ]*\)[^.]*\(\..*\)*/object\1\2/' )
     mv "$file" "$new"
done

在執行此操作之前,您應該檢查命令以確保它們執行您想要的操作,並進行備份。

相關內容