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