Command-Line

最後列印不帶“-”的SHA總和?

  • April 27, 2021

是否可以在沒有-附加到末尾的情況下列印 SHA 總和?

$ echo test | sha1sum 
4e1243bd22c66e76c2ba9eddc1f91394e57f9f83  -  <--- this "-" dash/hyphen

我知道我們可以使用awk和其他命令行工具,但是可以不使用其他工具來完成嗎?

$ echo test | sha1sum | awk '{print $1}'
4e1243bd22c66e76c2ba9eddc1f91394e57f9f83

如果沒有其他工具或不編輯實際的 sha1sum 腳本/二進製文件,這是不可能的。當 sha1sum 被輸入一個文件時,它會在總和之後列印文件名。當 sha1sum 未提供文件或與管道一起使用時。它將 - 作為佔位符放置,以指示輸入不是文件。

由於 sha1sum 雜湊的長度為 40 個字元,因此您可以將輸出通過管道傳輸到 head 命令中並從中提取前 40 個字元:

echo test | sha1sum | head -c 40

來源:https ://stackoverflow.com/a/14992739/4642023

引用自:https://unix.stackexchange.com/questions/487028