Hallo Leute,
ich brauch mal wieder etwas Bash-Hilfe
2 Listen sollen miteinander verglichen werden.
Das besondere dabei ist, dass sie nicht zeilenweise übereinstimmen müssen, sondern "nur" inhaltlich.
Also jede Zeile der einen Liste muss in der 2. Liste auch sein, aber egal an welcher Position der Liste.
=> diff hilft mir nicht.
Wird eine Zeile aus Liste 1 in Liste 2 nicht gefunden, dann soll mir diese Zeile in eine Fehler-Datei geschrieben werden.
Folgendes hab ich bisher:
Mein Problem ist jetzt, dass Liste 1 schön zeilenweise ausgelesen wird, aber Liste 2 nicht.
Da wird der gesamte Inhalt getestet und das geht natürlich schief
Es soll aber gegen jede Zeile der Liste 2 getestet werden und nur wenn gar keine Übereinstimmung ist, die fehler.txt gefüllt werden.
Wie kann ich sowas bewerkstelligen?
Mir fehlen grad die Ideen :???:
Danke!
ich brauch mal wieder etwas Bash-Hilfe
2 Listen sollen miteinander verglichen werden.
Das besondere dabei ist, dass sie nicht zeilenweise übereinstimmen müssen, sondern "nur" inhaltlich.
Also jede Zeile der einen Liste muss in der 2. Liste auch sein, aber egal an welcher Position der Liste.
=> diff hilft mir nicht.
Wird eine Zeile aus Liste 1 in Liste 2 nicht gefunden, dann soll mir diese Zeile in eine Fehler-Datei geschrieben werden.
Folgendes hab ich bisher:
Code:
#!/bin/bash
set -x
#Fehlerliste löschen
rm fehler.txt
echo "Prüfliste: "
read P1
echo "Kontrollliste: "
read K1
#control (){
# for k in `cat $K1`
# do
# echo $k
# done
#}
#for i in `cat $P1`
# do
# echo $i
# [ "{$i}" == control ]
# if [ $? -eq 1 ] ; then
# echo $i >> fehler.txt
# fi
#
#done
while
read line; do
echo $line;
[ $line == `cat $K1` ]
if [ $? -eq 1 ] ; then
echo $line >> fehler.txt
fi
done < $P1
Da wird der gesamte Inhalt getestet und das geht natürlich schief
Es soll aber gegen jede Zeile der Liste 2 getestet werden und nur wenn gar keine Übereinstimmung ist, die fehler.txt gefüllt werden.
Wie kann ich sowas bewerkstelligen?
Mir fehlen grad die Ideen :???:
Danke!