ハッシュ値をクリップボードから確認したかった
ファイルをDLしたときに、いちいちハッシュファイルを用意するのが面倒だったのでコピペでなんとかならないかと思っていた。
調べたところ、echo
からパイプで繋いでmd5sum -c -
に投げる方法も見つかったが、shasum
だとフォーマットが違うのかうまくチェックしてくれなかった。
普通のdiff
だと行単位なのであまり意味がなく困っていたが、git diff
で柔軟に比較単位を決められるとわかったのでメモ。
コマンド
#もしまだgitをインストールしていなければ先に`brew install git`する
git diff —-word-diff-regex=. -—no-index <(shasum -a 256 FILENAME) <(echo “HASHSUM”)
FILENAME
はDLしたファイル名、HASHSUM
にDL元のハッシュ値をコピペする。
説明
-
--word-diff-regex=.
が差分を表示する単位になる。
正規表現を使って.
を指定し1文字単位でチェック -
--no-index
をつけることで、gitの管理下にないファイルも扱えるようになる。 -
<(hoge)
で計算したハッシュ値と元サイトのハッシュ値を渡す。
実行結果
git diff --word-diff-regex=. --no-index <(shasum -a 256 HOGEHOGE.txt) <(echo "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855")
diff --git a/dev/fd/11 b/dev/fd/12
--- a/dev/fd/11
+++ b/dev/fd/12
@@ -1 +1 @@
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855[- HOGEHOGE.txt-]
とこんな感じで、shasumで出力された内の後半部分[- HOGEHOGE.txt-]
だけが差異として表示され、前方のハッシュ値自体は同一であることがわかる。
実際にターミナル上で実行すると色がついてわかりやすいんだけど、Qiita上でのシンタックスハイライトよくわからんかったのでご自身でやってみてください
環境
masOS 13.6.7
zsh
git version 2.45.0
参考文献
↓汎用性の高い手軽な方法が数パターン記載されている
↓gitのコマンドエイリアスに登録して、より手軽に呼び出す方法もまとめられています
↓<(hoge)
についての使い方詳細。複数の引数にそれぞれ処理した内容を渡せるので便利
↓gitの--word-diff-regex
についての公式ドキュメント