본문 바로가기

Scrapped Articles

Perl - 특정 경로이하 또는 파일에서 특정 문자열을 원하는 문자열로 변경

#! /usr/bin/perl -w

# PERL Scripted by bando

# DATE : 20040805

# Mail : bando(0x40)bando.org

# MSN : bando(0x40)bando.org

# 특정 경로이하 또는 파일에서 특정 문자열을 원하는 문자열로 변경하는 펄 스크립트


if ( $#ARGV != 2 ) {

&Usage();

}


$Chan_path = $ARGV[0];

$Chan_ch = $ARGV[1];

$Chand_ch = $ARGV[2];

$total = 0;


if ( ! -e $Chan_path) {

print "$Chan_path 와 같은 파일이나 디렉토리는 없습니다!n";

exit 1;

}


@arry = `grep "$Chan_ch" -l -r $Chan_path`;


foreach(0..$#arry) {


$arry[$_] =~ s/&/\&/g;

$arry[$_] =~ s/(/\(/g;

$arry[$_] =~ s/)/\)/g;

chomp($arry[$_]);

`perl -p -i -e 's/$Chan_ch/$Chand_ch/g' $arry[$_]`;

print "$arry[$_] : $Chan_ch => $Chand_ch [OK]n";

$total++;


}


print "\nTOTAL : $total 개 변경됨!\n\n";


sub Usage {


print "\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n";

print "사용법 : $0 [이 경로이하 또는 파일에서] [이 문자열을] [이 문자열로 변경]\n";

print "설명 : 일치하는 문자열을 특정 문자열로 변경한다.\n";

print "예제 : $0 /home localhost 127.0.0.1\n";

print "결과 : /home 디렉토리 이하의 모든 파일에서 localhost문자열을 127.0.0.1문자열로 변경한다.\n";

print "\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n";

exit;


}