Can grep show only words that match search pattern?

grep

Solution

Try `grep -o`:

grep -oh "\w*th\w*" *

Edit: matching from Phil's comment.

From the docs:

-h, --no-filename
    Suppress the prefixing of file names on output. This is the default
    when there is only  one  file  (or only standard input) to search.
-o, --only-matching
    Print  only  the matched (non-empty) parts of a matching line,
    with each such part on a separate output line.

Problem

Is there a way to make grep output "words" from files that match the search expression? If I want to find all the instances of, say, "th" in a number of files, I can do: ``` grep "th" * ``` but the output will be something like (bold is by me); ``` some-text-file : the cat sat on the mat some-other-text-file : the quick brown fox yet-another-text-file : i hope this explains it thoroughly ``` What I want it to output, using the same search, is: ``` the the the this thoroughly ``` Is this possible using grep? Or using another combination of tools?

Original source

Related problems