Akira's Blog

神奈川在住のITエンジニアの雑記です。主にプログラミング(Perl, Java など)やネットワーク技術についての小ネタを、ちょっとずつ書いていきます。

ファイルの中身を16進ダンプするスクリプト

引数で受け取ったファイルの中身を16進ダンプして、出力用のファイルに出す perl スクリプトを作成した。どういう時に使うかというと、例えば、入力に16進ダンプの文字列を受け付けるプログラムを使いたい時に、このスクリプトで対象の文字列を16進ダンプにしてから、そのプログラムに入力させる、といった感じ。
使い方は簡単で「perl dumpHexStr.pl "ファイル"」と実行すると、ファイルの中身を16進ダンプしたものを "dumped_ファイル" に出力する。

dumpHexStr.pl

use strict;
use warnings;

my $inFile = $ARGV[0];
if (!-f $inFile) {
    die "There is not $inFile file...";
}
my $outFile = "dumped_" . $inFile;

open(my $inFh,  "< $inFile")  or die("Error :$!");
open(my $outFh, "> $outFile") or die("Error :$!");

while (my $line = <$inFh>) {
    chomp($line);
    my $hexDump = unpack("H*", $line);
    print($outFh $hexDump)
}

close($inFh);
close($outFh);

perlは、こういったテキスト処理を簡単に書けるのが良いですね(^^)