2007
10-03
16:05
-
2007-10-04 01:00
追記しました.
メモ.
1 2 | #!/bin/sh echo $1 | perl -e 'use Digest::SHA1 qw( sha1_hex ); print sha1_hex( <> ) . "n";' |
とか
1 2 | #!/bin/sh echo $1 | openssl dgst -sha1 |
のようにシェルスクリプトを書いてパスを通しておけば,コマンドラインや PostgreSQL クライアントでそれぞれ
% sha1 hogehoge 8df7f638da50ddfa8f6a4162ddfc738b65e8b1cf %
=> \! sha1 hogehoge 8df7f638da50ddfa8f6a4162ddfc738b65e8b1cf =>
のようにできるので,個人的に便利になりましたとさ.
あとは PostgreSQL でこれを使って CREATE FUNCTION できると幸せなんだけど...もうちょっと勉強します.
2007.10. 4 追記
e-10.in さんのご指摘より,sha1sum を使えばおk,なのが判ったのでここに書いておきます.もうコマンド知らなさすぎです > 自分.
ちなみに sha1sum コマンドの出力は
% echo -n hogehoge | sha1sum 3b2c6c10d0e78072d14e02cc4c587814d0f10f3a - %
のように,後ろにヘンなもの (入力ファイル名,標準入力の場合は -) がついてくるので,cut コマンドでこれを取り除きました (これも今調べました).
で,以下が修正版です.
#!/bin/sh echo -n $1 | sha1sum | cut -b -40
はい,とっても簡単になりました.




どうも,お久しぶりです
# echo hogehoge | sha1sum
でおOK
あと echo コマンドは引数の最後に改行文字挟むんで ‘echo -n’ のほうがよさげです
> e-10.in さん
お久しぶり~.
ご指摘サンクスです.
これみるとエライまわりくどいことやってたのがわかりますね...orz
> echo コマンドは引数の最後に改行文字挟むんで
ですよね.別プログラムの出力と違うので,調べたらそのようでした.
ちなみに,sha1sum の出力にはファイル名 (標準入力の場合は ‘-’) がいっしょについてくるみたいなので,そのありを踏まえた修正版を追記しておきました.