新しいファイルと古いファイルを比較して、ダウンロードしたファイルが重複していることを確認するcheckDuplicateDownload.shというファイルがあるとします。
これが私がすることです。
duplicate=`cmp $prevFile newFile -b`
はduplicate
結果を格納する変数cmp
、prevFile
は古いファイル、newFile
は新しいファイルです。ファイルが同じ場合、値は0 duplicate
、それ以外の場合は1です。
上記のコマンドと同じことをcmp
行いますが、awkを使用して比較をduplicate
変数に保存するにはどうすればよいですか?
ベストアンサー1
あなたが説明するのは、2つのファイルを自動的に比較するようです。最初のコードスニペットは終了ステータスをcmp
変数に入れますduplicate
(0 = match、そうでない場合は問題があります。man cmp
終了ステータス値の詳細についてはこちらを参照)。
cmp -s prevFile newFile
duplicate=$?
しかし、次にやりたいことは、その価値をテストし$duplicate
てそれに取り組むことです。この場合、終了cmp
値を直接テストすることもできます。
if cmp -s prevFile newFile
then
echo "Files match"
else
echo "Files do not match (or one is missing, unreadable, etc.)"
fi
変数を使用する場合は、変数を使用するときに二重引用符で囲む必要があることを忘れないでください。
cmp -s "$prevFile" "$newFile"
$prevFile
また、まだ存在しないことが可能かどうかを検討してください。
最後に、どうですかawk
?作業に適したツールではないので、ここでは使用しないでください。