A-l*_*bby 40 sed unicode hexdump
例如:
sed 's/\u0091//g' file1
Run Code Online (Sandbox Code Playgroud)
现在,我必须做得到hexdump十六进制数并输入sed如下:
$ echo -ne '\u9991' | hexdump -C
00000000 e9 a6 91 |...|
00000003
Run Code Online (Sandbox Code Playgroud)
进而:
$ sed 's/\xe9\xa6\x91//g' file1
Run Code Online (Sandbox Code Playgroud)
cha*_*aos 34
只需使用该语法:
sed 's/?//g' file1
Run Code Online (Sandbox Code Playgroud)
或者以转义形式:
sed "s/$(echo -ne '\u9991')//g" file1
Run Code Online (Sandbox Code Playgroud)
(请注意,旧版本的 Bash 和某些 shell 无法理解echo -e '\u9991',因此请先检查。)
cho*_*oba 18
Perl 可以做到:
echo ??“?”?????? | perl -CS -pe 's/\N{U+9991}/Jin/g'
Run Code Online (Sandbox Code Playgroud)
-CS 为标准输入、输出和错误打开 UTF-8。
这对我有用:
\n\n$ vim -nEs +'%s/\\%u9991//g' +wq file1\nRun Code Online (Sandbox Code Playgroud)\n\n它\xe2\x80\x99s 比 I\xe2\x80\x99d 更冗长;这里\xe2\x80\x99s 完整的解释:
\n\n-n禁用 vim 交换文件-EEx改进模式-s静音模式+'%s/\\%u9991//g'执行替换命令+wq保存并退出使用最新版本的 BASH,只需省略 sed 表达式周围的引号,您就可以使用 BASH 的转义字符串。sed 表达式中的空格或 sed 表达式中可能被 BASH 解释为通配符的部分可以单独引用。
$ echo "????" | sed s/$'\u9991'//g
???
Run Code Online (Sandbox Code Playgroud)