Hoi,
Ik ben bezig om een script te maken dat 1 tekstbestand regel voor regel doorloopt en vervolgens kijkt in een ander tekstbestand of de regel uit bestand 1 voorkomt in een regel uit bestand 2. Daarna wil ik dat als de string uit bestand 1 voorkomt in bestand 2 dit niet schrijft naar bestand 3. Maar alleen naar bestand 3 schrijft als de string uit bestand 1 niet voorkomt in bestand 2.
Concreet: ik heb 2 bestanden, in het 1e bestand staan domeinen, in het 2e bestand staan URL's.
Zodra een domein uit bestand 1 voorkomt in een URL uit bestand 2, dan wil ik graag dat de regel wordt verwijderd uit bestand 2 (of eventueel dat bestand 3 de URL's bevat waarvan de domeinen niet voorkomen in het domein bestand).
Nu heb ik zelf wat basiskennis over bash programmeren onder Linux, maar hier kom ik niet zo goed uit.
Wat ik tot nu toe heb is het volgende:
Alleen dit doet precies het tegenovergestelde wat ik eigenlijk wil bereiken.
Ik heb nog wel wat andere stukjes code gevonden met sed en awk, alleen dat werkt over het gehele tekstbestand ipv per regel:
Ik weet dat ik ergens dingen moet gaan combineren alleen ik loop vast met hoe ik nu goed awk en sed kan gebruiken bij mijn eerste code zodat ik het goede bereik.
Ik hoop dat het duidelijk genoeg ik wat ik wil bereiken
Ik ben bezig om een script te maken dat 1 tekstbestand regel voor regel doorloopt en vervolgens kijkt in een ander tekstbestand of de regel uit bestand 1 voorkomt in een regel uit bestand 2. Daarna wil ik dat als de string uit bestand 1 voorkomt in bestand 2 dit niet schrijft naar bestand 3. Maar alleen naar bestand 3 schrijft als de string uit bestand 1 niet voorkomt in bestand 2.
Concreet: ik heb 2 bestanden, in het 1e bestand staan domeinen, in het 2e bestand staan URL's.
Zodra een domein uit bestand 1 voorkomt in een URL uit bestand 2, dan wil ik graag dat de regel wordt verwijderd uit bestand 2 (of eventueel dat bestand 3 de URL's bevat waarvan de domeinen niet voorkomen in het domein bestand).
Nu heb ik zelf wat basiskennis over bash programmeren onder Linux, maar hier kom ik niet zo goed uit.
Wat ik tot nu toe heb is het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
| for line in `cat domain.txt`
do
new=`grep -i $line url.txt`
exitcode=$?
if [ $exitcode = 0 ]; then
echo "domein komt niet voor in url lijst, schrijf naar 2e file"
echo $new >> url2.txt
else
echo "$line : domein bestaat in url lijst, volgende regel"
fi
done |
Alleen dit doet precies het tegenovergestelde wat ik eigenlijk wil bereiken.
Ik heb nog wel wat andere stukjes code gevonden met sed en awk, alleen dat werkt over het gehele tekstbestand ipv per regel:
code:
1
2
3
4
| for domline in `cat domain.txt`
do
sed -e '/$domline/d' url.txt >url2.txt
done |
Ik weet dat ik ergens dingen moet gaan combineren alleen ik loop vast met hoe ik nu goed awk en sed kan gebruiken bij mijn eerste code zodat ik het goede bereik.
Ik hoop dat het duidelijk genoeg ik wat ik wil bereiken