我有一堆這樣的文件:
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
在執行此操作之前,您應該檢查命令以確保它們執行您想要的操作,並進行備份。