16進数文字列をバイナリに変換
もっと良い書き方があるかと思うが
とりあえず、良くググるので。。。
◆ソース
# Input file $in_file="source.txt"; # Output file $out_file="dist.bin"; # Data Read @bin_list=(); open(IN,$in_file); while(<IN>){ chomp($_); ($a0,$a1,$a2,$a3,$a4,$a5,$a6,$a7,$a8,$a9,$a10,$a11,$a12,$a13,$a14,$a15)=split / /; push(@bin_list,pack("C",hex($a0))); push(@bin_list,pack("C",hex($a1))); push(@bin_list,pack("C",hex($a2))); push(@bin_list,pack("C",hex($a3))); push(@bin_list,pack("C",hex($a4))); push(@bin_list,pack("C",hex($a5))); push(@bin_list,pack("C",hex($a6))); push(@bin_list,pack("C",hex($a7))); push(@bin_list,pack("C",hex($a8))); push(@bin_list,pack("C",hex($a9))); push(@bin_list,pack("C",hex($a10))); push(@bin_list,pack("C",hex($a11))); push(@bin_list,pack("C",hex($a12))); push(@bin_list,pack("C",hex($a13))); push(@bin_list,pack("C",hex($a14))); push(@bin_list,pack("C",hex($a15))); } close IN; #Save open(OUT,">$out_file"); binmode OUT; foreach(@bin_list) { print OUT "$_"; } close OUT;
◆読込み元データ
アドレス無しで
00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF
と書く