2016-09-21 20 views
0

的輸出例如指令給出了這樣的輸出:bash腳本解析下面</p> <pre><code># sha512sum /home/bin.tar </code></pre> <p>命令

7847a537b5db4434c075f18319caf12090cb0f19640190cbdf27e28a7b40b568127dfe9ec1c06604a87887ad403b618edeb42d1c41366b7a3e91d47b8d754ea4 /home/bin.tar 

我怎麼能在bash中僅此輸出的散列部分配給一個變量爲了比較計算的散列與另一個變量中的其他散列?

我已經試過僅分配與匹配grep的條件下部分(我只需要第一部分):

#! /bin/sh 

RESULT="$(sha512sum /home/bin.tar | grep -o " /home/bin.tar")" 

echo "Result:" 

echo $RESULT 

exit 

輸出

Result: 
/home/bin.tar 

回答

3

這應做到:

RESULT="$(sha512sum /home/bin.tar | cut -d' ' -f1)" 

RESULT="$(sha512sum /home/bin.tar)" 
RESULT="${RESULT%% *}" 

RESULT="$(sha512sum /home/bin.tar | grep -o '^[^ ]*')" 
+0

這是非常快速和直接的答案。謝謝! – mtekeli

2

awk

RESULT="$(sha512sum /home/bin.tar | awk '{print $1}')" 

或者使用普通bash陣列做吧。只需在控制檯上運行這些命令即可。

md5Output=($(sha512sum /home/bin.tar)); printf "%s\n" ${md5Output[0]} 
+0

這也適用!謝謝! – mtekeli

相關問題