Mac OS Xでmd5sumコマンドをシミュレートする

OSXだとmd5コマンドになって出力の形式が違うので、バッチでmd5を拾う時なんかに少し面倒。

#!/usr/bin/perl
use strict;
use warnings;

my $filename = shift @ARGV;
my $md5 = `md5 $filename`;
die 'could not get md5 hash' unless $md5 =~ /^MD5 \([^\)]+\) = (\w+)$/;
print "$1  $filename\n";

とか書いてやっつけたけど、もうちょっと筋のいい方法はないものか。きっとあると思うんだけど、やっつけてしまった。

そして、

sudo port install md5sha1sum

であっさり解決することが判明。これでmd5sumコマンドが入る。

(追記)
kazuhoさんから「openssl md5使えばプラットホーム変わっても問題ない」と教えてもらいました(http://wassr.com/user/kazuho/statuses/CP0XPPmbnS)。確かにその方が汎用性ありそう。意味取り違えたけどなorz

そして、id:hnwさんから「coreutilsにvariants付ければOSXでもmd5sum呼べる」と教えてもらいました(http://wassr.com/user/hnw/statuses/i0Ifev7IpA)。gmd5sumで入ってたのか…

sudo port deactivate coreutils
sudo port install coreutils +with_default_names

したらmd5sumコマンドが使えるようになったよ。(さらに追記:cpとかmvとかlsもGNU版になるのでそのへんは自己責任で)

またクソのようなエントリを書いてしまったと思ってたけど、予想外の知見が得られてありがたい限り。お二人ともありがとうございました。