Bash : Inhalt von ZIP Dateien vergleichen
Problem : Man möchte über Bash nur den Inhalt einer Zip Datei vergleichen. Die Zip Datei wird aber automatisiert auf einem Server über cron erstellt, was zur Folge hatte das der Zeitstempel und somit auch die md5 Summen unterschiedlich sind.
Lösung : Die Lösung ist mit unzip in die Datei zu schauen und diesen Output mit diff zu verleichen.
Lösung : Die Lösung ist mit unzip in die Datei zu schauen und diesen Output mit diff zu verleichen.
function check_files_in_zip () {
# ------------------------ check_files_in_zip ---------------------------------------
# compare the content of two zipfiles if equal the function return 0 otherwise 1
#
# need 2 parameters : check_files_in_zip [NAME_OF_OLD_ZIPFILE] [NAME_OF_NEW_ZIPFILE]
# -----------------------------------------------------------------------------------
if [[ ! -z "${1}" || ! -z "${2}" ]]; then
diff <(unzip -v -l "${1}" | awk '! /Archiv/ && /[0-9]/ { print $1,$5,$6,$7,$8 }' | sed '$d') <(unzip -v -l "${2}" | awk '! /Archiv/ && /[0-9]/ { print $1,$5,$6,$7,$8 }' | sed '$d') 1>/dev/null 2>&1
if [ $? -eq 0 ]; then
return 0
else
return 1
fi
else
echo "check parameters for function #> check_files_in_zip"
exit 9
fi
}