awk and wingrep의 Regex
문제
그래서 나는 다음과 같은 패턴을 찾고 있습니다.
크기 = '0x0'
로그 파일에서 - 그러나 큰 크기 (4 자리 이상)에만 관심이 있습니다. 다음 Regex는 EditPadPro (Nice Tool BTW)에서 훌륭하게 작동합니다.
size = '0x [0-9a-fa-f] {4,}
그러나 동일한 Regex는 awk에서 작동하지 않습니다. 반복 {4,}가 그것을 엉망으로 만드는 것처럼 보입니다. Wingrep와 동일합니다 - Regex 전문가의 아이디어가 있습니까? 감사!
해결책
사실 Awk를 경고로 사용할 수 있습니다.
다음 페이지에 언급 된 바와 같이, 간격 표현식 ({4,})이 표준에 있지 않기 때문에 다음 페이지에 설명하기 위해서는 특수 명령 줄 옵션 (-re-interval)이 필요합니다.
http://kansai.anesth.or.jp/gijutu/awk/gawk/gawk_28.html
결국, 당신은 다음과 같은 모습을 원할 것입니다.
awk --re-interval "/size='0x[0-9a-fA-F]{4,}'/" thefile
이것은 일치하는 선을 인쇄합니다.
다른 팁
{4,} 구문에 대한 우아한 대안은 모르지만 원하는 환경에서 작동하지 않으면이 추악한 해킹에 의지 할 수 있습니다.
size='0x[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]+
도움이 되었기를 바랍니다!
아담
마지막 아포스트로피를 잊지 마십시오.
'
제휴하지 않습니다 StackOverflow