2016-07-22 9 views
1

ボーンヘッドの質問で、私が見つけたものを検索して使用しようとしましたが、何か「取得」していません。笑。私の試みは...失敗しました。bash端末のバルクイメージのリネーム

MacOS、数百の画像がディレクトリにあります。 AA111(製品コード)の名前付き形式ですべてA =アルファベット、1 =数字の文字。

したがって、その製品の主な画像はAA111.jpgです。関連する画像がある場合は、それらの名前は次のとおりです。

AA111_a.jpg 
AA111_b.jpg 
AA111_c.jpg 
etc. 

私は新しいショッピングカートにオーバー移植だし、それは形式の画像を望んでいる:

AA111_1.jpg 
AA111_2.jpg 
AA111_3.jpg 
etc. 

は、だから私はMVを言う必要があります名前形式がAA111_a.jpgからAA111_1.jpgの画像。

私はこれを私の睡眠の中でやっていますが、私は正規表現について知っていることをすべて忘れてしまいました。

+0

は、ファインダー内の画像を選択して右クリックし、「アイテムの名前を変更...」。 – duskwuff

+0

私はそれを調べて、うまくいかないと思った。しかし、...それをもう一度見て、私はあまりにも狭く "ワンショット"のソリューションに焦点を当てていたことを実感します。このように見えますが、私はそれを見つけて "_a"と言うことができます。それを "_1"と置きます。 AからGのためにそれをやるといいよ!ありがとうございました! 私はこれを答えにアップホートしたいと思います...しかし、それはちょうどコメントとして来ているようですね? – lavachickie

答えて

0

これを達成するためには直接コマンドは、スクリプト以下の多くの使用、ありません:

cd $dir 
mkdir destination 
#iterate through each file contains pattern \*_\*.jpg 
find . -type f -name '*_*.jpg' -print0 | 
    while IFS= read -r -d $'\0' line; do 
#split file name into two parts 
     prefix=`echo "$line" | sed -n 's/^\(.*\)_\(.*\).jpg$/\1/p'` 
     postfix=`echo "$line" | sed -n 's/^\(.*\)_\(.*\).jpg$/\2/p'` 
#conver postfix(a,b,c) to ASCII 
     postfix=$(expr `printf '%d' "'$postfix"` - 96) 
#copy file to destination or use **mv** command 
     cp $line "$to/${prefix}_${postfix}.jpg" 
done 
+0

ありがとう、Rahul!私はその小さな例で多くを学んだ! – lavachickie