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版になるのでそのへんは自己責任で)
またクソのようなエントリを書いてしまったと思ってたけど、予想外の知見が得られてありがたい限り。お二人ともありがとうございました。