Você provavelmente está em uma localidade UTF-8 (verifique a saída de locale charmap
).
Uso:
LC_ALL=C gawk '/\x56\x69\x72\x75\x73\xb4/ { print "Match!" }' virus.com
para garantir que bytes e caracteres sigam a mesma coisa.
Eu tenho um arquivo binário com o seguinte conteúdo (impresso em hexadecimal):
$ xxd -p virus.com
5669727573b440bb0100b90500ba0000cd21
Eu posso combinar as primeiras 5 letras (que são a cadeia alfanumérica 'Vírus') com
$ gawk '/\x56\x69\x72\x75\x73/ { print "Match!" }' virus.com
Match!
$
Mas assim que eu incluir a 6ª carta (que não é alfanumérica)
$ gawk '/\x56\x69\x72\x75\x73\xb4/ { print "Match!" }' virus.com
$
não combina mais.
Por que isso acontece e o que posso fazer para corresponder a todo o padrão?
Tags awk regular-expression