![网络提要中的特殊字符](https://linux22.com/image/60872/%E7%BD%91%E7%BB%9C%E6%8F%90%E8%A6%81%E4%B8%AD%E7%9A%84%E7%89%B9%E6%AE%8A%E5%AD%97%E7%AC%A6.png)
我正在运行一个脚本来从命令行检查我的 gmail 并显示标题中的前 35 个字符。
curl -u username:password --silent "https://mail.google.com/mail/feed/atom" | \
grep -oPm1 "(?<=<title>)[^<]+" | sed '1d'|cut -b 1-35
该脚本工作正常,除非标题包含特殊字符,如'
、&
等。我怎样才能让它们正确显示?剪切并粘贴到此处可以正确显示它,但是当我将其打印到终端时,我得到了'
for'
和&
for &
。
Up to 93% Off - Valentine's Day Today's Deals Live Now:
Michael Vince • FENDI & More for Men
答案1
您必须解码 html,因此通过解码器传输输出:
和perl
:
$ your cammand | perl -MHTML::Entities -le 'while(<>) {print decode_entities($_);}'
参见示例:
$ echo "Ambersand & and Single quote '" | perl -MHTML::Entities -le 'while(<>) {print decode_entities($_);}'
Ambersand & and Single quote '