#!/bin/bash T=$(mktemp) unzip -p "$1" tellico.xml | tr -d '\n' | sed -e $'s//<\/entry>\\\n/g' > "$T" hf=$(cat "$T" | grep -Pe '^.* ' | sed -E 's/( )*<(\/)?taken-date>( )*//g' | sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]{4})/\3-\2-\1/g' | sed -E 's/-([0-9])-/-0\1-/g' | sed -E 's/-([0-9])$/-0\1/g') l=$(echo "$r" | grep -oe '.*' | grep -oPe '[0-9]+\.[0-9]+[, ]*[0-9]+\.[0-9]+') echo "$t@$l" done <<< $(echo "$1") } srt=$(ll "$hf" | sort -u) uid=$mid while IFS='' read -r r || [[ -n "$r" ]]; do l=$(echo "$r" | grep -oPe '@.*$' | tr -d '@') lid=$(cat "$T" | grep " $l " | grep -oe ' .* ' | grep -oPe '[0-9]+') if [[ "$lid" = "" ]]; then sedexp="s/( $l<\/locality> .*yep<\/hasflatworms> )/ \\1 $uid<\/localityid> /g" #echo "$sedexp" sed -E "$sedexp" -i "$T" uid=$(($uid+1)) fi done <<< $(echo "$srt") D=$(mktemp -d) cp -f "$T" "$D/tellico.xml" zip -j "./micro_new.tc" "$D/tellico.xml" rm -rfv "$T" rm -rfv "$D"