레이블이 Perl인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Perl인 게시물을 표시합니다. 모든 게시물 표시

2010년 4월 5일 월요일

정규표현식

정의 :  문자열에 대해 일치될 패턴(또는 형판,template)이다./ / 둘러싸인 형태로 쓰임

-----------------< 맛보기 >---------------------------------------------------

grep 명령어

  • ex) grep abc somefile > results

    설명 : abc를 포함하고있는 문자열을 somefile 에서 찾아서 results에 출력 저장한다.

  • ex)

    설명 : 한파일에 대해 모든 행에 동작 abc를 포함하는 문자열을 찾을 경우 출력.

while(<>){

if(/ab/){      // if(/ab*c/)

print$_;

}

}

  • ex) grep "ab*c" somefile > results

 

  • ex) s/ab*c/def

    설명 : a시작 c로 끝나고 b는 정확히 모르는 문자를 def로 치환해라.

    ----------------< 패 턴 >------------------------------------------------------

    1) 단일 문자 패턴

  • ex) /a./

    설명 : a로 시작하는 임의의 문자열 이지만 "a\n"이 아닌 임의의 두문자 일치한다.

  • ex)/[abcde]/

    설명 : 대괄호 안의 다섯 소문자 중 하나라도 포함하고 있으면 참 아니면 거짓.

  • [012345] , [0-9],[0-9\-] ,[a-z0-9],[a-zA-Z0-9_]
  • ex) 부정 [^0-9],참고)^\^]

    설명 : 숫자가 아닌 임의의 한 문자 일치.

    • 미리정의된 문자 클래스

 

2) 그룹화 패턴

  • ex) s/x+/boom/;

    $_= "fred xxxxxxxxxxxxx barney;

    설명 fied boom barney 로 바뀐다.

txt파일 STDIN입력

 ./파일명.pl/ < name.txt(미리 만든 텍스트 파일)

./파일명.pl/ <name.txt> output.txt(STDIN을 통한 입력문자열을 output.txt파일을 새로만들어 넣어 둠)

rand함수 사용법

#!/usr/bin/perl -w
@a = qw(so too to hello);
print "$a[rand(@a)]";