Combinando hexadecimais com gawk

1

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?

    
por jederik 19.05.2013 / 13:06

1 resposta

1

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.

    
por 19.05.2013 / 22:58