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}
これは単なる文字列操作なので、オプションがあります!