md5ハッシュ結果をシェルにパイプする方法

md5ハッシュ結果をシェルにパイプする方法

md5sum結果を別のコマンドにパイプする簡単な方法を探しています。このような:

$echo -n 'test' | md5sum | ...

私の問題は、md5sum文字列のハッシュだけでなく、入力が標準入力から来たことを示すハイフンも出力することです。 manファイルを確認しましたが、出力を制御するフラグが見つかりませんでした。

答え1

次のコマンドを使用できます。切る;各入力ラインで特定の範囲の文字/バイトを切り取ることができます。 MD5ハッシュの長さは固定されているため(32文字)、このオプションを使用すると、-c 1-32入力行の最初の32文字のみを保持できます。

echo -n test | md5sum | cut -c 1-32

あるいは、各スペースで行を分割し、最初のフィールドのみを出力するように指示できますcut。 (空白文字の周りに引用符があります)

echo -n test | md5sum | cut -d " " -f 1

よりマンページの切り取りより多くの選択のために。

答え2

あなたはできますcut

echo -n 'test' | md5sum | cut -d' ' -f1

ここで-d' '区切り記号としてスペースを選択し、-f1最初のフィールド(区切り記号の前)を要求します。

答え3

使用アッまたうまくいきます:

echo -n 'test' | md5sum | awk '{print $1}'

もう一つの方法は、部分文字列を作成することです。 md5ハッシュが32文字の文字列であることがわかっているので、次のものを使用できます。

HASH=$(echo -n 'test' | md5sum -) && echo ${HASH:0:32}

これは単なる文字列操作なので、オプションがあります!

関連情報