[perl script] perl 사용 팁

2012.10.10 11:35

가을의 곰을... 조회 수:4331

 

[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/"

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

유닉스 파일을 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>
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
196 MongoDB에서 Java 응용 프로그램 개발하기 - 30분 가이드 file 가을의 곰을... 2012.10.28 9198
195 MongoDB GridFS 튜토리얼 file 가을의 곰을... 2012.10.28 4079
194 웹 마이닝 요약 도큐먼트 : Web Mining Survey Document file 가을의 곰을... 2012.10.10 4337
» [perl script] perl 사용 팁 file 가을의 곰을... 2012.10.10 4331
192 [파이썬] scrapy 로 웹 사이트 크롤링 가을의 곰을... 2012.10.09 11894
191 델파이 프로그래밍 소스 사이트(유용한 델파이 사이트) 가을의 곰을... 2012.10.07 4987
190 [프로그래밍 Tip] 아래는 프로그램 소스코드를 공개하는 사이트를 모아둔 것입니다. 가을의 곰을... 2012.10.04 5063
189 [칼럼] IT장애, 왜 반복되는가? 가을의 곰을... 2012.09.18 3573
188 [ubuntu] mysql 풀 백업 full backup 가을의 곰을... 2012.09.04 4554
187 일본의 클라우드 대란에서 얻는 교훈 file 가을의 곰을... 2012.09.03 4203
186 ITIL을 통한 효과적인 장애·문제 관리 가을의 곰을... 2012.09.03 3110
185 Ubuntu Samba UTF-8 파일 이름 인코딩 문제 file 가을의 곰을... 2012.08.28 4650
184 GTK+ 개괄 file 가을의 곰을... 2012.08.27 4897
183 우분투 에서 smtp 설정 가을의 곰을... 2012.08.27 5606
182 OpenStack 사용기 -우수 공개SW 사례 file 가을의 곰을... 2012.08.27 4484
181 우분투] 12.04 LAMP 서버 설치 file 가을의 곰을... 2012.08.27 4342
180 Ubuntu 복구 가을의 곰을... 2012.08.26 4222
179 인터넷 통계자료가 많은 사이트 모음 가을의 곰을... 2012.08.23 4408
178 넷북 EeePC T101MT에서 Windows 8 구동시키기 file 가을의 곰을... 2012.08.23 4068
177 Ubuntu 12.04에서 Tomcat7과 eclipse 설정하기 file 가을의 곰을... 2012.08.22 12209
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED