作者weakstudy (台灣高階管理人)
看板Linux
標題[問題] Linux下Bash批次更改檔名(數百、千個檔)
時間Tue Aug 15 16:03:23 2017
小弟剛接觸Linux下的Ubuntu系統,用的是Bash,
話說某天,某個學長經過我的座位看我一個檔點一下後,按F2,再更改檔名,
然後換下一個,他看了我改了五、六個檔吧,
終於受不了了,「學弟啊!這種東西,你寫個Bash就可以在30秒內搞定它了!」,
我眼睛發光的看著他,但是他在趕論文,隨手指著一個同學(女的)學姐,
她也會寫Bash,不會的請教她,
然就就飄回自已的座位寫論文了,
真的是「飄」回去 … 好像剛才那一段對話從來沒有發生過,
學姐也看都沒看我一眼,
我 … 好想寫個「慘」字 …
好了,前情提要就是這樣 …
接下來就是我現在面對的情況:
我有個資料夾…就叫它「OnePiece」吧
裡面有…
「海賊王 第1集 繁體中文翻譯.mp4」
「海賊王 第2集 繁體中文翻譯.mp4」
「海賊王 第3集 繁體中文翻譯.mp4」
「海賊王 第4集 繁體中文翻譯.mp4」
「海賊王 第5集 繁體中文翻譯.mp4」
…
「海賊王 第51集 繁體中文翻譯.mp4」
「海賊王 第52集 繁體中文翻譯.mp4」
「海賊王 第53集 繁體中文翻譯.mp4」
「海賊王 第54集 繁體中文翻譯.mp4」
「海賊王 第55集 繁體中文翻譯.mp4」
…
「海賊王 第796集 繁體中文翻譯.mp4」
「海賊王 第797集 繁體中文翻譯.mp4」
「海賊王 第798集 繁體中文翻譯.mp4」
「海賊王 第799集 繁體中文翻譯.mp4」
「海賊王 第800集 繁體中文翻譯.mp4」
…
因小弟Bash功力低淺,故特來網上求教各高手、神級人物,是否可以寫一個Bash幫忙更改
檔名的呢?
但希望是集數的數字可以留下來,
也就是如「海賊王 第800集 繁體中文翻譯.mp4」可以變成「OnePiece v800.mp4」?
久聞PTT高手如雲,又願意伸出援手,小弟這次真心想要請求幫忙,如不嫌棄,請助小弟
一臂之力!
小弟將來實力長成,必像大眾高手一樣儘力不計酬勞幫忙真心需要幫忙之人!
成謝再三!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.126.159.76
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1502784206.A.14A.html
→ weakstudy: 對不起,打字錯誤!最後一行字是「感謝再三」! 08/15 16:09
→ weakstudy: 小弟現在的感覺就是和「絕望幽靈」比絕望輸了的感覺! 08/15 16:11
→ weakstudy: 人生無望! 08/15 16:11
→ brli7848: Dolphin內建批量重新命名 08/15 16:21
→ bibo9901: rename 's/賊王 第800集 繁體中文翻譯/OnePiecev800/' * 08/15 16:49
→ bibo9901: 啊…看錯XDD 08/15 16:49
推 hijkxyzuw: rename -e 's/^.+(\d+).+\.mp4/OnePiece v$1.mp4/' * 08/15 16:55
→ dou0228: 有種看到某位博士發言的感覺 08/15 22:00
→ weakstudy: hijkxyzuw高手的解法太過高深…願意給小弟解釋一下嗎? 08/15 22:18
→ HamalAri: rename 要小心版本可能不同 08/15 23:41
→ HamalAri: util-linux/ util-linux-ng /perl 提供的不太一樣 08/15 23:41
→ grayStone: regex 08/16 04:13
→ kenduest: 我系統的 rename 就不吃 -e 參數 08/16 20:23
→ kenduest: 若支援的話的確很好用,一行簡單單純語法可搞定 08/16 20:40
→ longlongint: for 迴圈搭配硬尻檔名就可以了 只是沒有很通用XD 08/18 22:46
→ carylorrk: for i in `seq 1 800`; do mv *$i* v$i.mp4; done 08/21 15:01
推 rickieyang: 樓上你第一次進迴圈, 就把檔名裡有 1 的都抓出來鞭了 08/24 00:59
→ rickieyang: 第1集 第10集 第1x集 第21集 第1xx集 ... 08/24 01:00