Linux

如何在 Linux 中輕鬆地從標準輸入流轉換 HTML 特殊實體?

  • August 1, 2020

中央作業系統

有沒有一種簡單的方法可以從數據流中轉換 HTML 特殊實體?我將數據傳遞給 bash 腳本,有時該數據包含特殊實體。例如:

“測試” & 測試 $ test ! test @ # $ %^ & *

我不確定為什麼有些字元顯示得很好,而另一些則沒有,但不幸的是,我無法控制傳入的數據。

我想我也許可以在這裡使用 SED,但這似乎很麻煩,而且可能容易出現誤報。是否有專門用於解碼此類數據的 Linux 命令?

PHP 非常適合這種情況。此範例需要 PHP 5:

cat file.html | php -R 'echo html_entity_decode($argn);'

Perl (一如既往)是你的朋友。我認為這會做到:

perl -n -mHTML::Entities -e ' ; print HTML::Entities::decode_entities($_) ;'

例如:

echo '"test" & test $test ! test @ # $ % ^ & *' |perl -n -mHTML::Entities -e ' ; print HTML::Entities::decode_entities($_) ;'

帶輸出:

someguy@somehost ~]$ echo '"test" & test $test ! test @ # $ % ^ & *' |perl -n -mHTML::Entities -e ' ; print HTML::Entities::decode_entities($_) ;'
"test" & test $test ! test @ # $ % ^ & *

引用自:https://serverfault.com/questions/440805