2016-07-22 18 views
1

Bonehead Frage, habe gesucht und versucht zu verwenden, was ich gefunden habe, aber ich bin nicht "etwas". LOL. Meine Versuche haben ... gescheitert.Bulk Bild umzubenennen in bash Terminal

MacOS, Hunderte von Bildern in einem Verzeichnis. Alles in einem benannten Format von AA111 (welches ein Produktcode ist). A = Alpha-Zeichen, 1 = Zahlenzeichen.

Also das primäre Bild für dieses Produkt ist AA111.jpg. Wenn es ähnliche Bilder sind, dann werden sie genannt:

AA111_a.jpg 
AA111_b.jpg 
AA111_c.jpg 
etc. 

ich die Portierung auf einen neuen Einkaufswagen über, und es will Bilder im Format von:

AA111_1.jpg 
AA111_2.jpg 
AA111_3.jpg 
etc. 

Also muss ich mv sagen jedes Bild mit dem Namensformat AA111_a.jpg bis AA111_1.jpg.

Damals würde ich das im Schlaf tun, aber ich habe alles vergessen, was ich jemals über Regex wusste.

+0

Wählen Sie die Bilder im Finder der rechten Maustaste und „ Artikel Umbenennen ...“. – duskwuff

+0

Ich habe das untersucht und ich dachte, es würde nicht funktionieren. Aber wenn ich es noch einmal anschaue, merke ich, dass ich mich zu sehr auf eine One-Shot-Lösung konzentriert habe. Sieht so aus, als ob ich es sagen könnte, sag "a". und platziere das mit "_1". Mach das für A bis G und ich bin gut! Vielen Dank! Also ich möchte dies zu einer Antwort upvote ... aber es sieht aus wie es kommt nur als Kommentar? – lavachickie

Antwort

0

Es gibt keinen direkten Befehl, dies zu erreichen, können Sie viele Anwendungen unter Skript:

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

Danke, Rahul! Ich habe viel mit diesem kleinen Beispiel gelernt! – lavachickie