技術メモ

神奈川在住のITエンジニアの備忘録。おもにプログラミングやネットワーク技術について、学んだことを自分の中で整理するためにゆるゆると書いています。ちゃんと検証できていない部分もあるのでご参考程度となりますが、誰かのお役に立てれば幸いです。

ファイルの中身を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は、こういったテキスト処理を簡単に書けるのが良いですね(^^)