我试过了
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 ""
recode
echo '>' | recode ascii..html
>
>< "
echo 'a' | recode ascii..html
a
> >
str=$1
for (( i=0; i<${#str}; i++ )); do
c=${str:$i:1}
printf "&#%d;" "'$c" #
done
echo ""