많은 스크립트 언어가 있지만 정규표현식이나 문자열 처리 등에는 정말 Perl 만한 언어가 없는 것 같습니다.
조금만 사용할 줄 알아도 생활이 편해 지더군요.
저는 Perl을 그리 잘은 못하고 간단한 정규표현식이나 몇 몇 모듈 등만 아는 정도인데~
Perl을 사용하면서 제 생활이 정말 많이 편해졌다는 생각을 많이 합니다.
컴퓨터를 사용하려면 당연히 프로그램을 실행 시킬 텐데 이런 프로그램 실행을 정말 빠르고 쉽게 할 수 있는 툴로 Launchy 에 대해 아래 포스팅에서 소개한 적이 있습니다.
2013/09/01 - [유틸] - 편리한 런치 프로그램 Launchy
2014/04/20 - [유틸] - 생산성 향상 어플 Launchy plugin 추가 방법
Launchy 의 다양한 기능 중에 저는 Weby 를 많이 사용하곤 하는데 Weby를 사용하다 보니~ 브라우저에서 더 이상 북 마크 기능은 안 쓰게 되더군요.
사실 북 마크를 해 놓더라도 그거 찾다가 시간 다 가곤 하는데 weby 를 사용하면서는 이런 불편 함 이 사라졌습니다.
그런데 Launchy 의 Weby를 사용하다가도 불편한 점이 생기더군요.
저는 Launchy를 이곳 저곳에서 사용하는데~ launchy 의 설정 등을 백업해서 정리를 합니다.
가령 집에서 사용하는 launchy의 설정은 launchy.home.ini 이라고 하고~ 회사에서 사용하는 Launchy 의 설정 파일은 launchy.com.ini 로 저장곤 합니다.
이곳 저곳에서 분산된 설정들을 한곳에 모으기 위해서는 merge 를 해야 하는데~ 한 두 개 일 때는 쉽지만 항목들이 여러 개가 되면서는 merge 하기가 힘들더군요.
그래서 간단하게 launchy.ini 파일들을 merge 하는 Perl 스크립트를 작성해 봤습니다. 아래 붉은 색으로 표시한 부분이 merge 할 파일 들이고 Perl 코드는 ini 파일들과 같은 폴더에서 실행 시켰습니다.
본인의 머지 할 파일 명들을 아래 @FILEPATH 부분에 기록해 주면 됩니다.
use strict; | |
use warnings; | |
undef $/; | |
my @FILEPATH=qw/launchy.com.ini launchy.home.ini/; | |
my %hash ; | |
foreach (@FILEPATH) | |
{ | |
print "File Name : $_\n"; | |
open(OP,"<","$_") or die "Opening : $!"; | |
my $codes=<OP> ; | |
close OP ; | |
my @name= ($codes =~ m/sites.*?name=(\w+)\b/g); | |
my @query= ($codes =~ m/sites.*?query=(.*)\s+/g); | |
foreach (0..$#name) | |
{ | |
my $nameV= $name[$_]; | |
my $queryV= $query[$_]; | |
$nameV = lc $nameV ; | |
$hash{$nameV}=$queryV; | |
} | |
} | |
open(OP,">","Merge.txt") or die "Opening : $!"; | |
open(OP2,">","Merge_weby.txt") or die "Opening : $!"; | |
my $ind=0; | |
foreach my $name (sort keys %hash) { | |
++$ind; | |
my $queryV = $hash{$name}; | |
print OP "$name = $queryV \n"; | |
my $nameweby = "sites\\${ind}\\name=${name}"; | |
my $query = "sites\\${ind}\\query=${queryV}"; | |
my $default="sites\\${ind}\\default=false"; | |
print OP2 "$nameweby\n$query\n$default\n"; | |
} | |
close OP; | |
print OP2 "version=2.2\n"; | |
print OP2 "firefox=true\n"; | |
print OP2 "ie=false\n"; | |
print OP2 "sites\\size=${ind}\n"; | |
close OP2; |
위 코드를 실행 시키면~ Merge.txt, Merge_weby.txt 파일이 생성됩니다. Merge_weby.txt 파일이 weby 정보들에 대한 merge 파일 입니다.
복사 해서 launchy.ini 파일의 [weby] 부분에 붙여 넣기 하시면 됩니다.
'programming language > Perl' 카테고리의 다른 글
Perl Clipboard 사용하기 (2126) | 2014.03.12 |
---|---|
Notepad++ 에서 Perl 실행 방법 (760) | 2014.02.02 |
Perl 다른 파일의 함수 사용하기 (294) | 2013.05.13 |
Vim 에서 perl 실행 하기 (299) | 2012.05.12 |
Padre, Perl IDE (299) | 2012.02.14 |
Perl을 이용한 MS word 문서 생성 자동화 (892) | 2012.01.11 |
윈도우 환경에서 vim Perl IDE 사용하기 (144) | 2011.05.04 |
댓글