gawk를 사용하여 16진수 일치

gawk를 사용하여 16진수 일치

다음 내용이 포함된 이진 파일이 있습니다(16진수로 인쇄됨).

$ xxd -p virus.com
5669727573b440bb0100b90500ba0000cd21

처음 5개 문자(예: 영숫자 문자열 "Virus")를 다음과 결합할 수 있습니다.

$ gawk '/\x56\x69\x72\x75\x73/ { print "Match!" }' virus.com 
Match!
$

하지만 여섯 번째 문자(영숫자 아님)를 포함하면

$ gawk '/\x56\x69\x72\x75\x73\xb4/ { print "Match!" }' virus.com
$

더 이상 일치하지 않습니다.

왜 이런 일이 발생합니까? 전체 패턴을 일치시키려면 어떻게 해야 하나요?

답변1

UTF-8 로케일에 있을 수 있습니다(출력 확인 locale charmap).

사용:

LC_ALL=C gawk '/\x56\x69\x72\x75\x73\xb4/ { print "Match!" }' virus.com

바이트와 ​​문자가 동일한 것을 의미하는지 확인하세요.

관련 정보