# Combining Sed and Grep

The Unix command sed(1) is a lot more powerful than we give it credit for. One of my typical use cases for it is combining it with grep to find something in a text file, like this:

$cat haystack.txt hay hay something needle hay$ grep needle haystack.txt | sed 's/needle//g'
something


This will find any needle in the haystack, and remove it, leaving the rest of the line (in this case, something ). The final g tells sed to do global matching, and not replace just the first occurrence.

However, sed can do this work for us:

\$ sed -n s/needle//pg haystack.txt
something


Where the -n option suppresses output, and the p command selectively enables it.