44 lines
830 B
Bash
44 lines
830 B
Bash
uniq() {
|
|
u=("$@")
|
|
for ((i=0;i<${#u[@]};i++)); do
|
|
for ((j=i+1;j<=${#u[@]};j++)); do
|
|
[ "${u[$i]}" = "${u[$j]}" ] && unset u[$i]
|
|
done
|
|
done
|
|
u=("${u[@]}")
|
|
}
|
|
|
|
a=(John Serena Bob Mary Serena)
|
|
b=(Jim Mary John Jim Bob)
|
|
|
|
uniq "${a[@]}"
|
|
au=("${u[@]}")
|
|
uniq "${b[@]}"
|
|
bu=("${u[@]}")
|
|
|
|
ab=("${au[@]}")
|
|
for ((i=0;i<=${#au[@]};i++)); do
|
|
for ((j=0;j<=${#bu[@]};j++)); do
|
|
[ "${ab[$i]}" = "${bu[$j]}" ] && unset ab[$i]
|
|
done
|
|
done
|
|
ab=("${ab[@]}")
|
|
|
|
ba=("${bu[@]}")
|
|
for ((i=0;i<=${#bu[@]};i++)); do
|
|
for ((j=0;j<=${#au[@]};j++)); do
|
|
[ "${ba[$i]}" = "${au[$j]}" ] && unset ba[$i]
|
|
done
|
|
done
|
|
ba=("${ba[@]}")
|
|
|
|
sd=("${ab[@]}" "${ba[@]}")
|
|
|
|
echo "Set A = ${a[@]}"
|
|
echo " = ${au[@]}"
|
|
echo "Set B = ${b[@]}"
|
|
echo " = ${bu[@]}"
|
|
echo "A - B = ${ab[@]}"
|
|
echo "B - A = ${ba[@]}"
|
|
echo "Symmetric difference = ${sd[@]}"
|