grep 정규 표현식에 몇 가지 문제가 있습니다. 거기에 수많은 제외grep 정규 표현식이 제로와 정확히 일치하지 않습니다.
가grep -E "01[a-f0-9]{2}81[a-f0-9]0" log.log
파일의 일치의 대부분은, 좋아 보이는 : 나는 문자가 다음과 같이
내 그렙 문이 모두 소문자 일부 아스키 코드 16 진수 데이터를 grep을 위해 노력하고있어 다음과 같은 일치 :
010481ec070000
01b481ec070000
01508129070521
이 문자열이 일치하는 이유는 무엇인지 알 수 없습니다. 81은 16 진수 다음에 0이 와야하기 때문에 일치하지 않아야합니다.
나는 더 조사를했습니다. 나는이 세 문자열을 별도의 파일에 배치하고 grep에 해당 파일을 배치합니다. 나는 성냥을 얻지 못한다. 여기서 무슨 일이 일어나고 있는지 잘 모르겠습니다.
이것은 grep 2.12입니다.
여기에 파일의 원시 데이터의 일부입니다. 이들은 모두 일치하는 줄입니다. 그리고 아직도 LC_ALL = C가
input data : 011a81a907000b3002004070eaa3d2240fa81272011763dd0040002001
input data : 010481e1070000
input data : 010481ea070000
input data : 011a81a207000b980f0040681f2b11d2f60202dc003669ba0140006100
input data : 014681ab07002140010040d2e457f8c00494ed5e014362bf0240006101ae0500404ee311f402feb2165401c562450240005801db08044068f09ff6a6005af953008062470640004d01
input data : 010481e3070000
input data : 013081ac070016c0000040f6d963fcb4f7e8127c0103637b0140006f01bf0200408ae344fdd2043eed72018362a30240006f01
input data : 010481e4070000
input data : 011a81ad07000b5c06006064f96804901154fed2008e66ff0f4000a401
input data : 010481e5070000
input data : 014681ae070021170d004069f196134cf6a805b4000769b6034000be014e0e004092e80820da0b82fbfa000c6c5c014000bf01880a004020d9ce21f4efd40954011469a1004000ae01
input data : 011a81a607000bef0d0060d60dd6edf8f18e104e015b63d3014000da00
input data : 011a81af07000b4c0800401cfbb0184a0c28f7fa00516931024000e101
input data : 015c81a007002c12050020f2ff640028007afd00801205f70540000400280c00404f016a0a10fbd0012a00e769ff0f400018005d020040e3fabd21e00830f4d200c769d80140000300030a004042030
은 이전 grep 버전처럼 보입니다! – iamauser
여기에 입력 한 내용 (3 줄)과 일치하는 grep 명령이 없습니다. grep ver'gnu grep 2.14' – Kent
뭔가 이상합니다. 결과를 재현 할 수 없으며 정규 표현식은 버그가 거의 발생하지 않을만큼 간단합니다. 실행중인 정규 표현식과 전체 입력 행성을 보여주고 있습니까? 당신이 보여주지 않은 라인의 다른 부분과 일치 할 수 있습니까? 당신은 라인의 시작이나 끝을 앵커하지 않습니다 ... –