我想搜索一个包含扩展的asi字符的字符串,例如©或»或¼或½。我正在使用grep命令在上面的模式中搜索 grep -E'^ [a-fA-F0-9 \ 251] + $'文件
以上代码不起作用。
答案 0 :(得分:0)
对相应的扩展字符使用十六进制值。
0xbc for ¼
0xbd for ½
0xa9 for ©
在这种情况下尝试使用Perl。这是¼
的示例$ echo -e "abc\xbcdef" > extended_ascii.txt
$ cat extended_ascii.txt
abc▒def
$ cat -tv extended_ascii.txt
abcM-<def
grep下方的注释与之不符
$ grep "\xbc" extended_ascii.txt
Perl匹配
$ perl -ne ' print if /\xbc/ ' extended_ascii.txt
abc▒def
$
如果要匹配超出ASCII范围的任何扩展字符,请使用以下内容
$ perl -ne ' print if /[^\x20-\x7f]/ ' extended_ascii.txt
abc▒def
$
注意:我的终端在\ xbc上显示▒,对于您的终端可能会有所不同。