다음 내용이 포함된 이진 파일이 있습니다(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
바이트와 문자가 동일한 것을 의미하는지 확인하세요.