トレーラーにチェックサム値を追加する

トレーラーにチェックサム値を追加する

ファイルのトレーラーレコードにSHA256チェックサムハッシュを追加したいと思います。

file1.txt

H this is a test 
D 1
D 2
D 3
T checksum

64ビット英数字ハッシュ値を取得するには、次のコマンドを使用します。

sha256sum file1.txt >file2.txt

file2.txt

<64digituniquealphanumvalue> file1.txt

私の予想される出力ファイルは次のとおりです

file3.txt

H this is a test
D 1
D 2
D 3
T checksum <64digituniquealphanum>

しかし、次のコマンドを使用して次の出力を取得しました。

cat file1.txt file2.txt > file3.txt

file3.txt

H this is a test
D 1
D 2
D 3
T checksum
<64digituniquealphanum> file1.txt

file1新しい行があり、私の要件は、予期されるファイル形式で指定されたファイル名を持たないunixファイルの最後の行であるTレコードタイプに64ビットの一意のチェックサムハッシュ値を追加することです。 Unixで実装する方法を教えてください。

ベストアンサー1

sed "s/^T checksum$/& $(sha256sum file1.txt | awk '{print $1}')/" file1.txt

このsedコマンドは、「Tチェックサム」file1.txtと空白、sha256ダイジェストのみを含む行と一致しますfile1.txt

あなたのものが与えられると、次のようにfile1.txt出力されます。

H this is a test
D 1
D 2
D 3
T checksum 521967963f10f7f980c96ee7dfc832035d5fff252b134958add8a323023364d5

"Tチェックサム"行file1.txt何もないそれ以外の場合(たとえば、余分なスペースなど)、パターンと一致せ^T checksum$ず、何も追加されません。

おすすめ記事