Como decodificar uma string codificada em URL no shell?

Tenho um arquivo com uma lista de user-agents codificados. Por exemplo.

Mozilla%2F5.0%20%28Macintosh%3B%20U%3B%20Intel%20Mac%20OS%20X%2010.6%3B%20en

Quero um script de shell que possa ler este arquivo e gravar em um novo arquivo com seqüências de caracteres decodificada

Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en

Eu tenho tentado usar este exemplo para fazê-lo funcionar, mas ele não está funcionando até o moment

$ echo -e "$(echo "%31+%32%0A%33+%34" | sed 'y/+/ /; s/%/\\x/g')"

Meu script se parece com:

#!/bin/bash
for f in *.log; do
  echo -e "$(cat $f | sed 'y/+/ /; s/%/\x/g')" > y.log
done

questionAnswers(18)

yourAnswerToTheQuestion