フォルダのファイル名を一括変更する方法 [閉じる]

フォルダのファイル名を一括変更する方法 [閉じる]

各ファイルの名前は、次のようなzipファイルがあります。

original.jpg.1.png
original.jpg.2.png

このファイルは実際にjpegです。名前を次のように変更するにはどうすればよいですか?

original1.jpg
original2.jpg

答え1

名前を含める(perlの名前を変更する):

rename 's/original.jpg.(\d+).png/original$1.jpg/' original.jpg.*.png

答え2

これを行うには、次のbashスクリプトを使用できます。

#!/bin/bash

#Location of the zip file
zip_file="/path/to/jpegs.zip"
#Desired location of extracted files
dest_dir="/path/to/extract"

#Unzip the file to the desired location
unzip "$zip_file" -d "$dest_dir"

for f in "$dest_dir/"*.png; do
    #Remove path from filename.
    filename=$(basename "$f")
    #Remove .jpg. from filename.
    filename=${filename/.jpg./}
    #Change .png to .jpg
    filename=${filename/.png/.jpg}
    #Rename the extracted files to the preferred naming convention using mv.
    mv "$f" "${dest_dir}/${filename}"
done

関連情報