md5_cp/select

44 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
md5_source="2cp.md5"
md5_source_rm="2rm.md5"
md5_aim="aim.md5"
md5_aim_tmp="$(mktemp)"
cat "${md5_aim}" > $md5_aim_tmp
md5_source_tmp="$(mktemp)"
cat "${md5_source}" > $md5_source_tmp
echo "2cp file: '$md5_source_tmp'"
#wenn delete file exits -> handle deletons (importand for konflict handling
[ -f "${md5_source_rm}" ] && {
cat "${md5_source_rm}" | cut -c -32 | while read line; do
sed -i "/$line/d" "${md5_aim_tmp}"
done
cat "${md5_source_rm}" | cut -c 35- | while read line; do
l=$(grep " $line"$ "${md5_aim_tmp}")
[ -n "$l" ] && {
echo $l
md5=$(echo $l | cut -c -32)
sed -i "/$md5/d" "${md5_aim_tmp}"
}
done
}
#gleiche dateien anhand md5 aussortieren
cat "${md5_aim_tmp}" | cut -c -32 | while read line; do sed -i "/$line/d" "${md5_source_tmp}" ; done
#dateien die verschiedenen md5 haben aber bei beiden existieren als konflikte behandeln
echo Konflicts:
echo
cat "${md5_aim_tmp}" | cut -c 35- | while read line; do
l=$(grep " $line"$ "${md5_source_tmp}" | tee -a konflicts)
[ -n "$l" ] && {
echo $l
md5=$(echo $l | cut -c -32)
sed -i "/$md5/d" "${md5_source_tmp}"
}
done