繁体   English   中英

如何摆脱这个unicode角色?

[英]How do I get rid of this unicode character?

知道如何从一堆文本文件中摆脱这个恼人的角色U + 0092吗? 我已经尝试了以下所有,但它不起作用。 它从角色地图中称为U + 0092 + 控制

sed -i 's/\xc2\x92//' *
sed -i 's/\u0092//' *
sed -i 's///' *

啊,我找到了办法:

CHARS=$(python2 -c 'print u"\u0092".encode("utf8")')
sed 's/['"$CHARS"']//g'

但对此有直接的sed方法吗?

试试sed "s/\\`//g" * (我添加了g所以它会删除它找到的所有反引号)。


编辑 :这不是OP想要删除的反击。

这个问题的解决方案之后,这应该工作:

sed 's/\xc2\x92//g'

为了证明它:

$ CHARS=$(python -c 'print u"asdf\u0092asdf".encode("utf8")')

$ echo $CHARS
asdf<funny glyph symbol>asdf

$ echo $CHARS | sed 's/\xc2\x92//g'
asdfasdf

看到你已经尝试过的东西,也许你的文本文件中的内容不是U + 0092?

这可能适合你(GNU sed):

echo "string containing funny character(s)" | sed -n 'l0'

这将显示字符串,因为sed在八进制中看到它,然后使用:

echo "string containing funny character(s)" | sed 's/\onnn//g'

其中nnn是八进制值,删除它/它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM