問題描述
我正在尋找一種方法來改變:
hello < world
到這個:
hello < world
我可以使用 sed,但是如何才能實現,而不使用隱含的正則表達式?
最佳解決辦法
嘗試 recode(archived page; GitHub mirror; Debian page):
$ echo '<' |recode html..ascii
<
安裝在 Linux 和類似的 Unix-y 系統上:
$ sudo apt-get install recode
在 Mac OS 上安裝:
$ brew install recode
次佳解決辦法
用 perl:
cat foo.html | perl -MHTML::Entities -pe 'decode_entities($_);'
從命令行使用 php:
cat foo.html | php -r 'while(($line=fgets(STDIN)) !== FALSE) echo html_entity_decode($line, ENT_QUOTES|ENT_HTML401);'
第三種解決辦法
另一種方法是通過 Web 瀏覽器進行管理,例如:
echo '!' | w3m -dump -T text/html
對於 cygwin 來説,這對我來説非常有用,下載和安裝分發是困難的。
這個答案發現 here
第四種辦法
使用 xmlstarlet:
echo 'hello < world' | xmlstarlet unesc
參考文獻
注:本文內容整合自 Google/Baidu/Bing 輔助翻譯的英文資料結果。如果您對結果不滿意,可以加入我們改善翻譯效果:薇曉朵技術論壇。