is generally the program to use for matching and printing lines.
is a more powerful program that allows you to modify the text as well, so it's really overkill here, but yes, it can also be used as a grep substitute.
grep 'string' infile > outfile
sed -n '/string/p' infile > outfile
Edit @ovenwolv. You're correct in general, but useless use of cat
. grep and sed can both read files directly.