Grep шестнадцатеричные символы в файле - PullRequest
0 голосов
/ 23 января 2019

У меня возникли трудности с поиском количества шестнадцатеричных символов в файле.Например:

grep -o \x02 file | wc -l
0

Здесь должно быть около 3M совпадений, но не похоже, что здесь распознается символ \x02.Например (в питоне):

>>> s=open('file').read()
>>> s.count('\x02')
2932267

Ответы [ 2 ]

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

Ответ Mark Setchell может быть нормальным для MacOS, но, похоже, не работает на debian с использованием bash (протестировано с bash 4.4, grep 2.27).

Я могу получить совпадение, используя директиву -P (для регулярных выражений Perl)

user@host:~ $ printf '\x02\n3\n\x02' | grep -c -P '\x02'
2
user@host:~ $ printf '\x02\n3\n\x02' | grep -c -P '\xFF' #same input, different pattern
0
user@host:~ $ printf '\x02\n3\n\xff' | grep -c -P '\xFF' #match with unmatching case
2

Надеюсь, это поможет

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

Это похоже на то, что вы хотите в macOS:

printf "\x02\n3\n\x02" | grep -c "\x02"
2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...