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