multilne 에서 특정 regular expression을 써서 특수하게 쓰는 경우만 찾는 경우입니다.
grep이나 sed 가 multiline이 검색할 수 있는지 확인해보니.. 기본적으로 단순히 readline을 기준으로 한 것이라 멀티라인과 같은 경우는 하이레벨 렝귀지를 써야 합니다. 흘..
아래와 같은 것을 찾으려 하면, a태그 안에 주석문이 있는지 체크하려는 것을 보려면, 일반적으로 grep –i를 때려주면 편합니다만. Side effect 가 있기도 하지요.
<a>
/***
*
*/
</a>
너무 파일이 겁나게 많으면 별로 큰 소용이 없기도 합니다..
혹시 검색이 필요하시면 이걸 쓰세요. ^^
Grep1.pl
#!/usr/bin/perl use strict; my $filename = shift; open (FILE, "<", $filename) or die "Failed to read file $filename : $! \n"; my $whole_file; { local $/; $whole_file = <FILE>; } close(FILE); while ($whole_file =~ m#\<c:if\>(.*?)\<\!--(.*?)--\>(.*?)\<c:when>(.*?)\</c:when>(.*?)\<\/c:if\>#sg) { print $1 . $2. $3. $4. $5. $6. $7."\n"; } |
a.txt
a a a a a <a>aa </a> <c:if> 1 <!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa --> <c:when> 2 </c:when> 3 </c:if> 4 |
b.txt
a a a a a <a>aa </a> <c:if> 1 <c:when> 2 </c:when> 3 </c:if> 4 |
'etc tools' 카테고리의 다른 글
Ant 조건에 따라 실행하기 (0) | 2009.07.29 |
---|---|
라이브온에어 (0) | 2009.04.07 |
ACK 의 위력 (faster than grep) (0) | 2009.03.04 |
7zip과 bzip2의 비교 (0) | 2009.03.02 |
디렉토리 비교, 3개의 파일 비교 가능 툴 (0) | 2009.02.20 |