例如:
sed 's/\u0091//g' file1
现在,我必须hexdump
获取十六进制数并输入sed
如下:
$ echo -ne '\u9991' | hexdump -C
00000000 e9 a6 91 |...|
00000003
进而:
$ sed 's/\xe9\xa6\x91//g' file1
答案1
只需使用该语法:
sed 's/馑//g' file1
或者以转义形式:
sed "s/$(echo -ne '\u9991')//g" file1
(请注意,旧版本的 Bash 和某些 shell 不理解echo -e '\u9991'
,因此请先检查。)
答案2
Perl 可以做到这一点:
echo 汉典“馑”字的基本解释 | perl -CS -pe 's/\N{U+9991}/Jin/g'
-CS
为标准输入、输出和错误打开 UTF-8。
答案3
答案4
这对我有用:
$ vim -nEs +'%s/\%u9991//g' +wq file1
这比我想要的更冗长;这是完整的解释:
-n
禁用 vim 交换文件-E
Ex改进模式-s
静音模式+'%s/\%u9991//g'
执行替换命令+wq
保存并退出