Die Frage ist der Aufbau der Datei.
Wenn Du nach foo-bar grepst, und das in einer Zeile steht, wo auch foo oder oo drin ist, dann wird Dir latürnich die ganze Zeile ausgegeben, weil grep ja Zeilen ausgibt.
~
towo:Defiant> cat dateien.txt
towo
foo
bar
foo-bar
Müller-Lüdenscheid
Müller Lüdenscheid
oo
foo
~
towo:Defiant> grep "foo-bar" dateien.txt
foo-bar