[완료]정규표현식 [^abc] 의 동작여부
글쓴이: mahapunch / 작성시간: 수, 2011/12/21 - 2:20오후
로그 파일을 분석하기 위해 다음과 같은 문장을 썻습니다.
test.txt 내용
fileFormat011.dat
fileFormat011.info
fileFormat012.dat
fileFormat012.info
fileFormat013.dat
fileFormat013.info
fileFormat014.dat
fileFormat014.info
위 파일에서 info 확장자로 끝나지 않는 파일이름들만을 추출하기 위해 다음과 같이 했습니다.
> cat test.txt | awk '/^fileFormat.*[^info]$/' > result.txt
결과는... info 라인도 전부 가져오네요.. 뭐가 잘못된거죠??
웃긴건 이게 gVim 에서 패턴 테스트 해보면 잘된다는겁니다.
## 사용하고 있는 OS 는 SunOS 5.10 입니다.
Forums:
GNU awk 4.0.0으로 실행해 봤을 때는
GNU awk 4.0.0으로 실행해 봤을 때는 *.dat만 출력되었습니다.
awk 버전이 몇인지 test.txt가 dos 파일이 아닌지 확인해보세요
입력 파일에 문제가 있는 경우가 의외로 자주 있습니다.
덧붙여 info로 끝나지 않는 것만 골라내려면 다음과 같이 해야 합니다.
awk '!/info$/' test.txt
[^info]$ 는 ‘i’나 ‘n’, ‘f’, ‘o’가 아닌 문자로 끝나는 것을 가리킵니다.
의도한 바와 다릅니다.
:)
감사합니다 ^^
!/pattern/ 이런게 되는줄 몰랐네요
말씀해 주신 방법으로 해결했습니다. 감사합니다~
better tommrow than yesterday - cs. shin.
댓글 달기