Listen negieren
Es kann vorkommen das wir 2 Listen gegeneinander vergleichen müssen, meistens dann wenn's eilt.
Hierfür habe ich ein Script geschrieben, dass diese beiden vergleicht und in eine dritte schreibt,
#!/bin/bash
# script soll 2 dateien vergleichen/abgleichen und in eine dritte schreiebn
# 11.04.2013 - jast - first-draft
# 03.07.2013 - jast - sed-pattern verbessert damit nur das gestrichen wird, was auch gestrichen werden soll
# Variablen
A="$1"
B="$2"
C="$3"
TMPFILE1="/tmp/listen-negieren-tmp1"
TMPFILE2="/tmp/listen-negieren-tmp2"
TMPFILE3="/tmp/listen-negieren-tmp3"
#functions
usage(){
echo "Usage `basename $0` <erste_liste> <zu_subtrahiernde_liste> <output_liste>" && exit 1
}
# verifikation
if [ -z ${A} ] || [ -z ${B} ] || [ -z ${C} ]; then
usage
fi
# save some stuff
cat ${B} >> ${TMPFILE2}
cat ${A} >> ${TMPFILE1}
for subtrsrv in `cat ${B}` ; do
cat ${TMPFILE1} | sed "/^${subtrsrv}$/d" > ${TMPFILE3}
cp ${TMPFILE3} ${TMPFILE1}
done
cp ${TMPFILE1} ${C}
rm ${TMPFILE1} ${TMPFILE2} ${TMPFILE3}
exit 0