[perl script] perl 사용 팁

컴퓨터로 작업을 할 때 필자는 스크립트를 작성하는 작업을 반복하고 있다는 생각을 종종 한다.
리눅스 내에는 많은 스크립트용 프로그래밍 시스템이 있다.아래 글에서 그 시스템 중 하나인 Perl에 관해 살펴 보려 한다.
펄은 완전한 프로그래밍 언어이지만, 많은 특징들과 넓은 범위의 add-on 라이브러리가 있기에 스크립트처럼 짧고 빨리 쓰여진 프로그램을 만들기에 알맞다.

여기에 perl로 나타낸 10가지의 보기가 있다.
이것들은 리눅스 하에서 스크립트를 사용하는 그러한 종류의 작업을 보여주는 것이다. 모든 스크립트들은 맨 마지막 "표시 다음에 특정한 종류의 인수를 취하는데, "표시는 프로그램이 끝남을 알려준다.

1. perl -p -i -e"s/this/ that/g" filename(The Boot Loader)

검색을 한 다음 파일명 속에서 `this"를 "that"으로 바꾸어 넣는다. 파일명대신에 *이나 *.html 또는 적절한 임의 문자식을 표시할 수도 있다. s///명령은 정규식을 사용한다. "this"와 "that"을 바꾸고 싶다면 .*?[]{}$^와 정규식에서 metacharacter역할을 하는 다른 이상한 문자를 피하면 된다. 혹은 perlre 문서화 페이지에서 더 잘 살펴볼 수 있는데, 이 때 명령은 perldoc perlre라고 내리면 된다. perl에는 광대한 온라인 문서화가 있으므로 리스트를 얻으려면 perldoc perltoc를
시도하면 된다.

2. perl -e "for (@ARGV) { rename $_, lc($_) unless -e lc($_); }" *

현 디렉토리내의 모든 파일을 소문자 케이스로 이름을 변경한다. $_는 perl에서 폭넓게 사용되는 일종의 `디폴트"변수이다.

3. perl -e "for (@ARGV) {rename $_,$_."I" unless -e lc($_); }" *

현 디렉토리내의 모든 파일명 끝에 `I"를 첨가한다. 그것은 : .htm => .html이다.`unless -e"는 "파일명이 존재하지 않는다면`을 의미한다.

4. perl -MLWP::Simple -e "mirror("http://www.perl.com/" , "perl.html")"

파일이 로컬 카피보다 신형이라면 웹 전역에서 그 파일을 카피한다. 이 작업을 하기위해서 "libnet"와 "libwww"설치해야 한다.
LWP패키지는 위대한 문서화 페이지인 "lwpcook"에 부속되어 있으며, 이 문서화 페이지에는 Perl을 이용해서 자료를 WWW전역에 전송하는 많은 다른 방법들이 나와 있다.

5. perl -p -e "s/"

유닉스 파일을 DOS파일로 변환시킨다. 유닉스파일에는 행문자 순서의 끝이 DOS와 다르다.

6. perl -e "if (!fork) {sleep $ARGV[0]*60; print "aaa" ; exit;"

지정된 시간동안 기다리면 경고음이 들릴것이다. 명령이 실행되고 있는지를 보고 싶다면 리눅스 명령어인 "ps"를 사용하면 된다.

7. perl -e "use Socket; $name = gethostbyaddr(inet_aton($ARGV[0]),AF_INET);print $name;" 207.153.253.38

주어진 도메인명이나 적혀있는 IP숫자를 호스트명으로 변환시킨다. 여러분들이 무엇을 적든지간에 일관된 호스트명으로 변환될것이라.

8. perl -MTime::Local -e "$y2k=timelocal(0,0,0,1,0,2000); $until=y2k-time; print "seconds $until to y2k";"

웹2000년도까지 몇초가 남았는지를 알려준다.

9. perl -e "$n=utime ((stat($ARGV[0]))[8,9], @ARGV) ;print $n" aaa t*

문자 t로 시작하는 모든 파일에 파일 `aaa"과 같은 시간표시를 한다.그런다음 새벽 5시에 실행하고자 하는 명령어의 세부사항을 입력하면 그 명령은 실행될 것이다-물론 컴퓨터는 켜져 있어야 한다. 이것은 단 한번만 실행된다는 점에서 cron과는 다르
다. 이러한 명령이 실행되지 않는 것 같다면 /etc/cron.allow, /etc/cron.deny, /etc/at.allow, /etc/at.deny 파일들을 삭제
하라. 허가된 이름들은 `allow"파일로 들어간다. 이러한 명령을 사용할 수 없는 사용자들은 "deny"파일에 등록된다. 여러분의 GUI systems admin interface는 자동적으로 이러한 허가가 이루어 지도록 해준다.

10. perl -1 -e "open(F,"/usr/dict/english");$w=join("",sort split(//,$ARGV[0]));

"life"라는 단어의 모든 글짜바꿈수수께끼를 찾아준다.이것이 앞에서 말한 10가지 기술이다. 이제 웹상에서 찾을 수 있는 다른 뛰어난 Perl 자료를 점검해보자.

출처
[타인글이나 자료 인용] 인터넷 : http://www.ihelpers.co.kr">http://www.ihelpers.co.kr>

+ Recent posts