No, the fact is that strangely I achieved what I want by adding -v.
Do not ask me why, but with -v (excluding) I got what I want. Thanks for the support btw.
Note: Even though this will work in most of the cases, there is the potential for false matches, since the . (dot) is interpreted as any character in grep's regular expressions..
This could be improved somewhat using string matches with the -F operator:
grep -vFf text2.txt text1.txt
But then there could still be partial matches and one would have to do something like this, using bash/ksh93 process substitution:
grep -vFf <(sed 's/^/ /' text2.txt) text1.txt
Although even that would still not be 100% sure.
To achieve that we would need to use something like this: