44 lines
1.1 KiB
Bash
Executable File
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
|