Linux

Linux重命名文件以在副檔名之前的文件名之後添加_00

  • July 21, 2020

我在這裡錯過了什麼,這看起來很簡單,但我無法讓它工作。

我有一個目錄,其中包含 AGNDRAH01.jpg 之類的文件

我想要一個包含 APGPNDRAH01_00.jpg 等文件的目錄

rename 's/(\w+).jpg\$1\_00.jpg$//' *

不,工作。Centos Linux。對我來說為什麼這不起作用毫無意義。

快速破解,可以完成您在 bash 中描述的操作:

cd /directory
for F in `ls -1 |awk -F. '{print $2}'`
do
 mv $F.jpg ${F}_00.jpg
done

對於重命名用法:

wmoore@bitbucket(/tmp/dowork)$ ls -1
1.jpg
2.jpg
3.jpg
4.jpg
5.jpg
wmoore@bitbucket(/tmp/dowork)$ rename .jpg _00.jpg *.jpg
wmoore@bitbucket(/tmp/dowork)$ ls -1
1_00.jpg
2_00.jpg
3_00.jpg
4_00.jpg
5_00.jpg

嘗試以下 bash 腳本:

find . -type f -name "*.jpg" -print | while read FILE  
 do mv "${FILE}" "`dirname ${FILE}`/`basename ${FILE} .jpg`_00.jpg"
 done

這將在目前目錄中或目前目錄下找到所有 .jpg 文件並在 .jpg_00之前插入.jpg。如果您只希望它處理目前目錄,請使用 find 命令啟動find . -maxdepth 1

引用自:https://serverfault.com/questions/125915