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 }