I am trying to speed up creating a line by line hash file from a huge file using Perl.
Here is my current (working but too slow) Bash code:
(while read line; do hash=$(echo -n $line | md5sum); echo ${hash:0:32}; done)
And here is my Perl code:
perl -MDigest::MD5 -le 'foreach $line ( <STDIN> ) {print Digest::MD5->md5_hex($line)}'
Problem is the hashes don't match. What am I missing?
$ echo "xyz" | perl -MDigest::MD5 -le 'foreach $line ( <STDIN> ) {print Digest::MD5->md5_hex($line)}'
d81e30bc9592abd836c2a1fe2eda5489
$ echo -n "xyz" | perl -MDigest::MD5 -le 'foreach $line ( <STDIN> ) {print Digest::MD5->md5_hex($line)}'
71602ba5e39db459d95ab7c6666bb9e3
$ echo "xyz" | md5sum
b6273b589df2dfdbd8fe35b1011e3183 *-
$ echo -n "xyz" | md5sum
d16fb36f0911f878998c136191af705e *- << This is the correct one!
$ echo "xyz" | perl -MDigest::MD5 -le 'foreach $line ( <STDIN> ) {print Digest::MD5->md5_hex(chomp($line))}'
d6b2c2e82380abb5b6b57029546640e0
$ echo -n "xyz" | perl -MDigest::MD5 -le 'foreach $line ( <STDIN> ) {print Digest::MD5->md5_hex(chomp($line))}'
7cc36a6eaa4809e20cc4db85e7ce3df5
All different hashes so what exact string am I hashing in the Perl code?
Mike