MD5を変更するために複数回実行しても、ファイルの末尾に1つの文字列を追加します。

MD5を変更するために複数回実行しても、ファイルの末尾に1つの文字列を追加します。

ファイルの md5 を時々一度、時には複数回変更する必要があります。私の友人は私にファイルの最後に文字列を追加するためにこのスクリプトを与えましたが、私はそれを何度も追加すると思いました。これが実際に他のものを編集しているかどうかはわかりません。使い始める前に確認してみたかったです。

#!/bin/sh
echo "md5change`date +%s`"
cat $1 | sed --in-place '/md5change/s/.*//' $1
sed -i '/^[ \t]*$/d' $1
echo "md5change`date +%s`" >> $1
echo "done"

ありがとう

ベストアンサー1

スクリプトは、「md5change」という文字列を含むファイルに行があると仮定しているようです。画面にこのような文字列を表示し、その文字列を含む行を消去し(削除しない)、ファイル内のすべての空行を削除し、最後にファイルに新しい「md5change」行を追加します(必ずしも一致しません)。 1つを表示しecho、最後に「完了」を印刷します。ただし、そのcat $1 |部分$1はすでに「in-place」パラメータでレンダリングされているため、削除する必要がありますsed

編集:次のようにコードを圧縮できると思います。

timestamp=md5change$(date +%s)
echo "${timestamp}"
sed -i "/md5change/s/.*/${timestamp}/" "$1"
echo "done"

(注:このコードはファイル内のすべての空行を削除し、ファイルから複数の「md5change」エントリを削除し、ファイルの末尾に追加するため、コードテンプレートと同じではありません。この圧縮バージョンは既存の「md5change」を変更します. " "アイテムは新しいアイテムで構成されています。

おすすめ記事