毎日私は以下の特定のファイルセットに関する情報をメールで受け取ります。
58623208 Sep 14 20:08 blbn_blfbe_drv
57904920 Sep 14 19:54 blbn_cycmn
55814208 Sep 14 06:02 clsa_Upd
38912000 Sep 14 19:12 cs_chgpp
41107456 Sep 14 19:17 csmRFbe
39403520 Sep 14 19:09 csmUAddAct
39235584 Sep 14 19:20 csmUAddSub
...など、約60個のファイルがあります。
これで、すべてのファイルを既存のファイルと1つずつ比較して、すべてが一致することを確認する必要があります。
filename
、、、timestamp
およびdate
はsize
一致する必要があります。
これを自動化する方法はありますか?
comm
または使用を検討していますdiff
。
ベストアンサー1
次の-d
オプションを含むGNU Dateがあるとします。
while read size mon day time filename; do
if [[ ! -f "$filename" ]]; then
echo "ERROR: no such file: $filename" >&2
else
filesize=$(stat -c %s "$filename")
if [[ "$size" != "$filesize" ]]; then
echo "ERROR: size mismatch: $filename" >&2
else
filetime=$(date -d "$(stat -c %y "$filename")" "+%b %d %H:%M")
if [[ "$mon $day $time" != "$filetime" ]]; then
echo "ERROR: date mismatch: $filename" >&2
fi
fi
fi
done