Do you have the same number of columns?
If for example you have 6 columns for each line and you want to separate those which are different in columns 2 and 5 you can use this script:
Maybe I don't get the problem, but I would simply use grep:
grep -vi "xyz" fileA | grep -vi kal > fileB
The -i is for "case insensitive" because you didn't use capitals in "cut all lines which have xyz and kal". You can also combine the two calls into one using disjunction, and do much, much more with grep (see the man page).