#!/bin/bash # Mass renaming of wallpapers #set -x . /home/default LOCKFILE PROGRAMS "jhead blank-rename.sh lowercase mmv xv" SELECT="0" DATE=`date +%Y%m%d` #Select the type of renaming {{{ SELECTION () { LINE "Select the type of sorting when looking at the above filenames" echo "${txtbld}1${txtoff}. All names Quasi Unknown ${txtbld}2${txtoff}. All are sorted two names ${txtbld}3${txtoff}. Ask for each individual file ${txtbld}4${txtoff}. Sorted by 3 names " read -p "What renaming type to use? " SELECT case $SELECT in 1) QUASI_UNKNOWN;; 2) TWO_NAMES;; 3) RENAME_ALL;; 4) SELECT="1";TWO_NAMES;; *) ERROR "Exit selected!";; esac exit } # }}} # Renaming of the Quasi Unknown {{{ QUASI_UNKNOWN () { COUNT="4000" blank-rename.sh lowercase jhead -purejpg *.jpg jhead -cl "Quasi Unknown" for FILE in *.jpg do let "COUNT = $COUNT + 1" NUM=`printf %04d $COUNT` NAME="quasi_unknown_${DATE}_${NUM}.jpg" mv $FILE $NAME done echo "Renamed all to Quasi Unknown." exit } #}}} #Renaming of two names files {{{ TWO_NAMES () { COUNT="6000" blank-rename.sh lowercase mmv "*-*-*" "#1_#2_#3" jhead -purejpg *.jpg for FILE in *.jpg do let "COUNT = $COUNT + 1" NUM=`printf %04d $COUNT` if [ "$SELECT" == "2" ] then NAME=`echo $FILE|sed 's/_/ /g'|sed 's/.jpg$//g'|sed 's/[0-9]//g'|awk '{print $1 " " $2 }'` else NAME=`echo $FILE|sed 's/_/ /g'|sed 's/.jpg$//g'|sed 's/[0-9]//g'|awk '{print $1 " " $2 " " $3}'` fi NAME=`echo $NAME| awk ' { for(i=1; i<=NF; i++) sub(/./,toupper(substr($(i),1,1)), $(i)); print; }'` jhead -cl "$NAME" $FILE NAME=`echo $NAME | sed -e "s/ /_/g" | tr A-Z a-z` NAME=${NAME}_${DATE}_${NUM}.jpg mv $FILE $NAME done echo "Renamed all to 2 name names." exit } # }}} # Renaming all by hand {{{ FIRST_LETTER() { NAME=`echo $NAME| awk ' { for(i=1; i<=NF; i++) sub(/./,toupper(substr($(i),1,1)), $(i)); print; }'` } RENAME_ALL () { COUNT="0" blank-rename.sh lowercase mmv "*-*-*" "#1_#2_#3" jhead -purejpg *.jpg clear for FILE in *.jpg do LINE "$FILE" let "COUNT = $COUNT + 1" NUM=`printf %04d $COUNT` NAME=`echo $FILE|sed 's/_/ /g'|sed 's/.jpg$//g'|sed 's/[0-9]//g'|awk '{print $1 " " $2 }'` FIRST_LETTER # Checking of the name read -s -n1 -p "is ${txtgrn}${NAME}${txtoff} correct [y/n] " KEY if [ "$KEY" = "n" ] then DISPLAY=:0.0 xv -geometry x736-0+0 -nodecor $FILE & NAME=`echo $FILE|sed 's/[_-]/ /g'|sed 's/.jpg$//g'|sed 's/[0-9]//g'` echo "${txtblu}$NAME${txtoff}" NAME="" read -p "What name to use? " NAME FIRST_LETTER killall xv fi if [ "$NAME" = "" ] then NAME="Quasi Unknown" fi echo "" # clear echo $NAME jhead -cl "$NAME" $FILE NAME=`echo $NAME | sed -e "s/ /_/g" | tr A-Z a-z` NAME=${NAME}_${DATE}_${NUM}.jpg mv $FILE $NAME echo "$FILE" echo "to ${bold}${NAME}${off}" printf "$LINE\n\n" done exit } #}}} SELECTION