Com o GNU recode
:
recode html < file
Se você não tiver recode
ou HTML::Entities
e precisar decodificar apenas &#x<hex>;
entidades, poderá fazer isso manualmente:
perl -Mopen=locale -pe 's/&#x([\da-f]+);/chr hex $1/gie'
Eu quero entidades numéricas html como & # x119; e quer convertê-lo em personagem real. Eu tenho e-mails principalmente do LinkedIn que se parecem com isso:
chciałabym zapytać, czy rozważa Pan takze udział w nowych projektach w Warszawie ? Obecnie poszukujemy specjalisty javascript/architekta z bardzo dobrą znajomością Angular.js do projektu, który dotyczy systemu, służącego do monitorowania i zarządzania flotą pojazdów. Zespół, do którego poszukujemy
Estou usando o clawsmail, mudando para html, não o converto para texto, tento copiar e usar
xclip -o -sel clip | html2text | less
mas não converteu as entidades. Existe uma maneira de ter esse texto usando ferramentas de linha de comando?
A única maneira que posso pensar é usar data:text/html,<PASTE THE EMAIL>
e abri-lo em um navegador, mas preferiria a linha de comando.
De Como posso decodificar entidades HTML? no StackOverflow, você pode implementar uma solução simples de perl como
perl -Mopen=locale -MHTML::Entities -pe '$_ = decode_entities($_)' email.txt
por exemplo. usando o seu texto de exemplo
$ perl -Mopen=locale -MHTML::Entities -pe '$_ = decode_entities($_)' email.txt
chciałabym zapytać, czy rozważa Pan takze udział w nowych projektach w Warszawie ? Obecnie poszukujemy specjalisty javascript/architekta z bardzo dobrą znajomością Angular.js do projektu, który dotyczy systemu, służącego do monitorowania i zarządzania flotą pojazdów. Zespół, do którego poszukujemy
Com -Mopen=locale
, a E / S é feita no conjunto de caracteres do local. Isso inclui a entrada de email.txt
. Parece que email.txt
contém apenas caracteres ASCII (o ponto inteiro de codificar esses caracteres usando a notação &#x<hex>;
, suponho), mas se não, você pode precisar adaptar o acima para também decodificar esse arquivo usando o charset direito (se for não é o mesmo que o do local) em vez de usar open=locale
.
Uma versão do python 3.2+ pode ser usada em um pipe:
python3 -c 'import html, sys; [print(html.unescape(l), end="") for l in sys.stdin]' < file
echo -e "\x01\x19"
deve fazer o truque.