我尝试了 recode
:
echo '>' | recode ascii..html
>
,但它似乎只能转换诸如>
<
和"
:
echo 'a' | recode ascii..html
a
我也想转换字母和其他字符。即,上述命令的所需输出是a
。
是否有任何简单的方法可以在不创建一些大的正则表达式的情况下执行此操作?
您可以使用printf在变量前面使用'来获取字符的ASCII值。当然,这将导致>
而不是>
。您可以使用代码将$ 1转换为HTML ASCII代码的字符串。
str=$1
for (( i=0; i<${#str}; i++ )); do
c=${str:$i:1}
printf "&#%d;" "'$c" #
done
echo ""