在Unix中搜索扩展的asci字符

时间:2019-01-17 11:15:29

标签: shell unix scripting sh

我想搜索一个包含扩展的asi字符的字符串,例如©或»或¼或½。我正在使用grep命令在上面的模式中搜索 grep -E'^ [a-fA-F0-9 \ 251] + $'文件

以上代码不起作用。

1 个答案:

答案 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上显示▒,对于您的终端可能会有所不同。