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
Posted by '김용환'
,