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.