如何使用命令行从xml节点中删除表情符号



我想从XML文件中删除表情符号。一个典型的字符串示例可能类似于:

input: <UserName>JANE - MARIE &#55357;&#56628➡️</UserName>.

我只想要:

OUTPUT : <UserName>JANE - MARIE</UserName>.

我试着使用sed,但我不擅长正则表达式,有人能帮我吗,或者建议我使用另一个函数吗?

谢谢

看起来您想要删除非ASCII字符。这取决于您是否接受带有Unicode的名称(例如带有á、é、í、ó、ú、ü、ñ等的名称(。如果这种简单的方法(删除非ascii字符(足以满足您的要求:

LANG=C sed -i 's/[d128-d255]//g' <FILENAME>

在我这边测试:

$ LANG=C sed -i 's/[d128-d255]//g' /tmp/x.txt
$ cat /tmp/x.txt
<UserName>JANE - MARIE &#55357;&#56628</UserName>.