网络提要中的特殊字符

网络提要中的特殊字符

我正在运行一个脚本来从命令行检查我的 gmail 并显示标题中的前 35 个字符。

curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | \
grep -oPm1 "(?<=<title>)[^<]+" | sed '1d'|cut -b 1-35

该脚本工作正常,除非标题包含特殊字符,如'&等。我怎样才能让它们正确显示?剪切并粘贴到此处可以正确显示它,但是当我将其打印到终端时,我得到了&#39for'&ampfor &

Up to 93% Off - Valentine&#39;s Day Today&#39;s Deals Live Now:
Michael Vince • FENDI &amp; More for Men

答案1

您必须解码 html,因此通过解码器传输输出:

perl

$ your cammand | perl -MHTML::Entities -le 'while(<>) {print decode_entities($_);}'

参见示例:

$ echo "Ambersand &amp; and Single quote &#39" | perl -MHTML::Entities -le 'while(<>) {print decode_entities($_);}'
Ambersand & and Single quote '

相关内容