83

私はこれを変える方法を探しています:

hello < world

これに:

hello < world

sedを使用することもできますが、不可解な正規表現を使用せずにこれを実現するにはどうすればよいですか?

4

12 に答える 12

100

コードを書き直してみてください(アーカイブされたページ; GitHub ミラー; Debian ページ):

$ echo '&lt;' |recode html..ascii
<

Linux および同様の Unix-y システムにインストールします。

$ sudo apt-get install recode

以下を使用して Mac OS にインストールします。

$ brew install recode
于 2011-05-08T18:49:00.487 に答える
61

パールの場合:

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);'
于 2012-10-31T15:45:01.750 に答える
22

別の方法として、次のように Web ブラウザを介してパイプする方法があります。

echo '&#33;' | w3m -dump -T text/html

これは、ディストリビューションのダウンロードとインストールが難しい cygwin でうまく機能しました。

この答えはここで見つかりました

于 2011-05-26T15:50:18.127 に答える
19

xmlstarlet の使用:

echo 'hello &lt; world' | xmlstarlet unesc
于 2011-05-09T10:47:43.787 に答える
14

Python 3.2 以降のバージョン:

cat foo.html | python3 -c 'import html, sys; [print(html.unescape(l), end="") for l in sys.stdin]'
于 2017-03-08T13:41:01.207 に答える
1

macOS では、組み込みコマンドtextutil(一般的に便利なユーティリティ) を使用できます。

echo '&#128075; hello &lt; world &#x1f310;' | textutil -convert txt -format html -stdin -stdout

出力:

 hello < world 
于 2021-10-30T05:20:53.520 に答える
-1

ザイデルと:

echo 'hello &lt; &#x3a; &quot; world' | xidel -s - -e 'parse-html($raw)'
hello < : " world
于 2020-01-12T15:26:07.753 に答える