yes, it is overcomplicated. It is not the cron who does not like it, but the human beeing who cannot construct such a complex command in one single line.
As it was suggested better to put it all in a script and you invoke only the script from cron.
Furthermore I would try to simplify it:
Code:
# for example, instead of
var="${var%??}"; echo "$var"
# you can use:
echo "${var%??}"
also $( ) is much better than backtick (as it was mentioned)