Você pode começar assim:
for i in "$@"; do
dst="${i%pdf}jpg"
convert "$i" -resize 612x792 "$dst"
convert "$i" -resize 255x330 "${i%.pdf}_thump.jpg"
done
E chame como
$ bash my_script.sh *.pdf
Para renomear, você pode usar outro script. Não entendo o seu exemplo .csv-file. O que contém 3 linhas para 3 arquivos? Ok, este é o caso.
Você pode renomear o arquivo com a seguinte linha de comando:
$ awk -F, '{ system("echo mv \"" $1 "\" \"" $2 "\"") }' myrename.csv
O awk executa o comando echo ...
para cada linha, $1
é o valor do primeiro campo de uma linha e $2
é o valor do segundo campo. A cota \"
é necessária no caso de um nome de arquivo contiver espaços. -F,
diz a awk
para usar uma vírgula como separador de campos.
Se você testou esse comando, pode remover o echo
para renomear os arquivos. Você pode adicionar -n
a mv
para evitar sobregravações acidentais de arquivos existentes.