ボックスにはRuby/Python/Perlなどはありません。
bash
、sed
、およびawk
のみ。
Charをマップに置き換える方法がありますが、面倒です。
おそらく私が知らないいくつかの組み込み機能はありますか?
HTMLのエスケープは、実際には3つの文字<
、>
、および&
を置き換えるだけです。追加ポイントについては、"
と'
を置き換えることもできます。したがって、長いsed
スクリプトではありません。
sed 's/&/\&/g; s/</\</g; s/>/\>/g; s/"/\"/g; s/'"'"'/\'/g'
recode
ユーティリティを使用できます。
echo 'He said: "Not sure that - 2<1"' | recode ascii..html
出力:
He said: "Not sure that - 2<1"
純粋なbash、外部プログラムなし:
function htmlEscape () {
s=${1//&/&}
s=${s//</<}
s=${s//>/>}
s=${s//'"'/"}
echo $s
}
単純な文字列置換。
またはxmlstarを使用 Escape/Unescape特殊XML文字 :
$ echo '<abc&def>'| xml esc
<abc&def>