Binary input 파일을 받아 hexadecimal로 이루어진 output file을 생성하는 perl script
[Perl script]
#!/usr/bin/perl
use strict;
my $input_file;
my $output_file;
my $buf;
my ($byte0, $byte1, $byte2, $byte3);
my $alignedHex;
print("====================\n");
print("Bin to Hex Converter\n");
print("====================\n");
open(INFILE, $ARGV[0]) || die("Cannot open input file\n");
binmode INFILE;
$input_file = $ARGV[0];
$output_file = $ARGV[1];
print("Input filename: ${input_file}\n");
print("Output filename: ${output_file}\n");
print("\n");
open(OUTFILE, ">${output_file}");
while(sysread(INFILE, $buf, 4)) {
my $buf2hex;
$buf2hex = unpack("H*", $buf);
$byte0 = substr($buf2hex, 0, 2);
$byte1 = substr($buf2hex, 2, 2);
$byte2 = substr($buf2hex, 4, 2);
$byte3 = substr($buf2hex, 6, 2);
$alignedHex = $byte3.$byte2.$byte1.$byte0;
print(OUTFILE "${alignedHex}\n");
}
close(INFILE);
[Usage]
./bin2hex input_filename output_filename
[Output]
ba000000
12345678
...
[Perl script]
#!/usr/bin/perl
use strict;
my $input_file;
my $output_file;
my $buf;
my ($byte0, $byte1, $byte2, $byte3);
my $alignedHex;
print("====================\n");
print("Bin to Hex Converter\n");
print("====================\n");
open(INFILE, $ARGV[0]) || die("Cannot open input file\n");
binmode INFILE;
$input_file = $ARGV[0];
$output_file = $ARGV[1];
print("Input filename: ${input_file}\n");
print("Output filename: ${output_file}\n");
print("\n");
open(OUTFILE, ">${output_file}");
while(sysread(INFILE, $buf, 4)) {
my $buf2hex;
$buf2hex = unpack("H*", $buf);
$byte0 = substr($buf2hex, 0, 2);
$byte1 = substr($buf2hex, 2, 2);
$byte2 = substr($buf2hex, 4, 2);
$byte3 = substr($buf2hex, 6, 2);
$alignedHex = $byte3.$byte2.$byte1.$byte0;
print(OUTFILE "${alignedHex}\n");
}
close(INFILE);
[Usage]
./bin2hex input_filename output_filename
[Output]
ba000000
12345678
...
'Linux' 카테고리의 다른 글
[vi] ctags 사용법 (0) | 2011.02.17 |
---|---|
[vi] 편리한 몇가지 팁 (0) | 2011.02.17 |
[Perl] Hex to Bin Converter (0) | 2011.02.14 |
[vi] Folding (0) | 2011.02.08 |
[Perl] File I/O (0) | 2011.01.05 |