Coding/Perl 삽질기2010. 11. 12. 01:26
#
# Date : 2010. 11. 12
#
# Author : chobocho.com
#
# Description : 패턴에 포함된 라인을 출력해주는 스크립트
###############################################
# File Name

$filename = "express.ini";

open (EXP_FILE, "<".$filename) || die $!;
@expressions = <EXP_FILE>;
close(EXP_FILE);

print "!!! chobocho filter V0.01 !!!\n";
print "-----------------------------\n";
print @expressions;
print "\n---------------------------\n";

{
    if (-f $ARGV[0]) 
    {
        print "!!! Read ".$ARGV[0]."!!!\n";
        print "\n---------------------------\n";
    
        open (IN_FILE, "<".$ARGV[0]) || die $!;
         
        while (my $line = <IN_FILE>) 
        {
            foreach $expression(@expressions)
            {
                if ( $line =~ /$expression/ )
                {
                    print $line;
                }
            }
        }

        close (IN_FILE);
    } 
}


[실행파일]
Posted by chobocho
Coding/Perl 삽질기2009. 6. 16. 23:46
# Hex2Ascii
###############################################

$start_expression = '[0-9]+\|[0-9]{2}';
$data_expression = '[0-9a-fA-F]{2}';

%AsciiTable = (

"00" => " ",
"01" => " ",
"02" => " ",
"03" => " ",
"04" => " ",
"05" => " ",
"06" => " ",
"07" => " ",
"08" => " ",
"09" => " ",
"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" => "0",
"49" => "1",
"50" => "2",
"51" => "3",
"52" => "4",
"53" => "5",
"54" => "6",
"55" => "7",
"56" => "8",
"57" => "9",
"58" => ":",
"59" => ";",
"60" => "<",
"61" => "=",
"62" => ">",
"63" => "?",
"64" => "@",
"65" => "A",
"66" => "B",
"67" => "C",
"68" => "D",
"69" => "E",
"70" => "F",
"71" => "G",
"72" => "H",
"73" => "I",
"74" => "J",
"75" => "K",
"76" => "L",
"77" => "M",
"78" => "N",
"79" => "O",
"80" => "P",
"81" => "Q",
"82" => "R",
"83" => "S",
"84" => "T",
"85" => "U",
"86" => "V",
"87" => "W",
"88" => "X",
"89" => "Y",
"90" => "Z",
"91" => "[",
"92" => "\\",
"93" => "]",
"94" => "^",
"95" => "_",
"96" => "`",
"97" => "a",
"98" => "b",
"99" => "c",
"100" => "d",
"101" => "e",
"102" => "f",
"103" => "g",
"104" => "h",
"105" => "i",
"106" => "j",
"107" => "k",
"108" => "l",
"109" => "m",
"110" => "n",
"111" => "o",
"112" => "p",
"113" => "q",
"114" => "r",
"115" => "s",
"116" => "t",
"117" => "u",
"118" => "v",
"119" => "w",
"120" => "x",
"121" => "y",
"122" => "z",
"123" => "{",
"124" => "|",
"125" => "}",
"126" => "~",
"127" => "",
"128" => "€",
"129" => " ",
"130" => " ",
"131" => " ",
"132" => " ",
"133" => " ",
"134" => " ",
"135" => " ",
"136" => " ",
"137" => " ",
"138" => " ",
"139" => " ",
"140" => " ",
"141" => " ",
"142" => " ",
"143" => " ",
"144" => " ",
"145" => " ",
"146" => " ",
"147" => " ",
"148" => " ",
"149" => " ",
"150" => " ",
"151" => " ",
"152" => " ",
"153" => " ",
"154" => " ",
"155" => " ",
"156" => " ",
"157" => " ",
"158" => " ",
"159" => " ",
"160" => " ",
"161" => " ",
"162" => " ",
"163" => " ",
"164" => " ",
"165" => " ",
"166" => " ",
"167" => " ",
"168" => " ",
"169" => " ",
"170" => " ",
"171" => " ",
"172" => " ",
"173" => " ",
"174" => " ",
"175" => " ",
"176" => " ",
"177" => " ",
"178" => " ",
"179" => " ",
"180" => " ",
"181" => " ",
"182" => " ",
"183" => " ",
"184" => " ",
"185" => " ",
"186" => " ",
"187" => " ",
"188" => " ",
"189" => " ",
"190" => " ",
"191" => " ",
"192" => " ",
"193" => " ",
"194" => " ",
"195" => " ",
"196" => " ",
"197" => " ",
"198" => " ",
"199" => " ",
"200" => " ",
"201" => " ",
"202" => " ",
"203" => " ",
"204" => " ",
"205" => " ",
"206" => " ",
"207" => " ",
"208" => " ",
"209" => " ",
"210" => " ",
"211" => " ",
"212" => " ",
"213" => " ",
"214" => " ",
"215" => " ",
"216" => " ",
"217" => " ",
"218" => " ",
"219" => " ",
"220" => " ",
"221" => " ",
"222" => " ",
"223" => " ",
"224" => " ",
"225" => " ",
"226" => " ",
"227" => " ",
"228" => " ",
"229" => " ",
"230" => " ",
"231" => " ",
"232" => " ",
"233" => " ",
"234" => " ",
"235" => " ",
"236" => " ",
"237" => " ",
"238" => " ",
"239" => " ",
"240" => " ",
"241" => " ",
"242" => " ",
"243" => " ",
"244" => " ",
"245" => " ",
"246" => " ",
"247" => " ",
"248" => " ",
"249" => " ",
"250" => " ",
"251" => " ",
"252" => " ",
"253" => " ",
"254" => " ",
"255" => " "
);

#$in_filename = "data.txt";

if (@ARGV == 0)
{
   print "Useage h2a.pl filename";
   exit;
}

$in_filename = $ARGV[0];

$out_filename = "result_".$in_filename;

if (-f $in_filename)
{
    print $filename."\n";
   
    open (IN_FILE, "<".$in_filename) || die $!;
    open (OUT_FILE,">".$out_filename) || die $!;
    while (my $line = <IN_FILE>)
    {
        if ( $line =~ /$start_expression/ )
        {
            print $line;
            print OUT_FILE $line;
        }
        elsif ( $line =~ /$data_expression/ )
        {
            # print $line;
            # print OUT_FILE $line;
           
            @hex_arr = $line =~ /$data_expression/g;
            foreach $data(@hex_arr)
            {
                print $AsciiTable{$data};
                print OUT_FILE $AsciiTable{$data};
            }
            print "\n";
            print OUT_FILE "\n";
        }
    }
    close (IN_FILE);
    close (OUT_FILE);
}



Posted by chobocho