Perl のbinmodeを使用して、次のワンライナーと同じ機能を実現し、1 つのテキストの 16 進データを出力する方法を教えてもらえますか?
$ perl -nle 'print map {sprintf "%02X",ord} split //'
たとえば、「abcABC」と入力すると、出力は「616263414243」になります。
binmode を使用して同様のワンライナーを指定してください。
ありがとう。
プログラム内からそれを行う方法を尋ねていますか? デフォルトの入力モードは Linux と同じでbinmode
、Windows の唯一の違いは、すべての CR LF が LF に変換されることです。
これで安心して書けます。
while (<>) {
chomp;
printf '%02X, $_ for split //;
print "\n";
}
ただし、Windows 版の perl を使用して Windows ファイルを読み込んでいる場合、CR 文字は消えます。
を使用するというあなたの主張は理解できませんbinmode
が、おそらくこれがあなたの言いたいことですか?
perl -le 'print map { sprintf q{%02X}, ord } split //, shift' abcABC
616263414243