поиск расширенного символа asci в unix - PullRequest
0 голосов
/ 17 января 2019

Я хочу найти строку, которая содержит расширенный символ ascii, такой как © или »или ¼ или ½. Я ввожу поиск выше шаблон с помощью команды grep, как это grep -E '^ [a-fA-F0-9 \ 251] + $' file

вышеуказанный код не работает.

1 Ответ

0 голосов
/ 17 января 2019

Используйте шестнадцатеричные значения для соответствующих расширенных символов.

0xbc for ¼
0xbd for ½
0xa9 for ©

Попробуйте Perl для таких случаев. Вот пример для 100

$ 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, он может отличаться для вашего.

...