특정 경로이하 또는 파일에서 특정 문자열을 원하는 문자열로 변경하는 펄 스크립트
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
#! /usr/bin/perl -w # PERL Scripted by bando # DATE : 20040805 # Mail : bando@bando.org # MSN : bando@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\n"; print "사용법 : $0 [이 경로이하 또는 파일에서] [이 문자열을] [이 문자열로 변경]\n\n"; print "설명 : 일치하는 문자열을 특정 문자열로 변경한다.\n"; print "예제 : $0 /home localhost 127.0.0.1\n"; print "결과 : /home 디렉토리 이하의 모든 파일에서 localhost문자열을 127.0.0.1문자열로 변경한다.\n"; print "\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n"; exit; } |