如何使用 sed 删除 U+200B(零宽度空间)

the*_*iko 16 regex unicode sed

我有一个非常大的文件,其中散布着零宽度空间。打开和编辑使用时间太长,vi所以我想使用sed. 问题是,我不知道如何匹配字符!我试过使用\u200B, \x{200b}。有任何想法吗?

如果有帮助的话,我正在运行 CentOS 5。

Den*_*son 12

这似乎对我有用:

sed 's/\xe2\x80\x8b//g' inputfile
Run Code Online (Sandbox Code Playgroud)

示范:

$ /usr/bin/printf 'X\u200bY\u200bZ' | hexdump -C
00000000  58 e2 80 8b 59 e2 80 8b  5a                       |X...Y...Z|
$ /usr/bin/printf 'X\u200bY\u200bZ' | sed 's/\xe2\x80\x8b//g' | hexdump -C
00000000  58 59 5a                                          |XYZ|
Run Code Online (Sandbox Code Playgroud)

编辑:

部分基于吉尔斯的回答:

tr -d $(/usr/bin/printf "\u200b") < inputfile
Run Code Online (Sandbox Code Playgroud)