웹 피드의 특수 문자

웹 피드의 특수 문자

명령줄에서 내 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 '

관련 정보