Comment décoder URL-chaîne codée en shell?

J'ai un fichier avec une liste des user-agents qui sont codés.
E. g.:

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

Je veux un script shell qui peut lire ce fichier et écrire dans un nouveau fichier avec chaînes décodées.

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

J'ai essayé d'utiliser cet exemple pour obtenir ce que ça va, mais il n'est pas jusque-là.

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

Mon script ressemble:

#!/bin/bash
for f in *.log; do
  echo -e "$(cat $f | sed 'y/+//; s/%/\x/g')" > y.log
done
  • ligne 5: "x" devrait être le double échappement (s/%/\x/g -> s/%/\\x/g
  • Merci pour le pointeur. Essayez d'échappement double. Ne sais pas comment je l'ai raté quand j'ai copié à partir de quelque part d'autre. Sera mise à jour.
  • unix.stackexchange.com/questions/159253/...
InformationsquelleAutor user785717 | 2011-06-06