Solución 1:
Perl es (como siempre) tu amigo. Creo que esto funcionará:
perl -n -mHTML::Entities -e ' ; print HTML::Entities::decode_entities($_) ;'
Por ejemplo:
echo '"test" & test $test ! test @ # $ % ^ & *' |perl -n -mHTML::Entities -e ' ; print HTML::Entities::decode_entities($_) ;'
Con salida:
[email protected] ~]$ echo '"test" & test $test ! test @ # $ % ^ & *' |perl -n -mHTML::Entities -e ' ; print HTML::Entities::decode_entities($_) ;'
"test" & test $test ! test @ # $ % ^ & *
Solución 2:
PHP se adapta bien a esto. Este ejemplo requiere PHP 5:
cat file.html | php -R 'echo html_entity_decode($argn);'
Solución 3:
recode parece estar disponible en los repositorios de paquetes predeterminados de las principales distribuciones de GNU/Linux. P.ej. para decodificar entidades HTML en UTF-8:
…|recode html..utf8
Solución 4:
Con Python 3:
python3 -c 'import html,sys; print(html.unescape(sys.stdin.read()), end="")' < file.html