Coder Perfect

without displaying path/file:line grep


How do you use grep to just return the lines that match? i.e. the path/filename is not included in the output.

In this scenario, I want to search for the term FOO in files in the current directory.

find . -name '*.bar' -exec grep -Hn FOO {} \;

Asked by Allan Thomas

Solution #1

There’s no need to look. This should serve if you’re only looking for a pattern within a certain directory:

grep -hn FOO /your/path/*.bar

Where -h is the parameter to hide the filename, as from man grep:

Keep in mind that you were utilizing

Answered by fedorqui ‘SO stop harming’

Solution #2

Simply substitute -h for -H. For additional information on options, see man grep.

find . -name '*.bar' -exec grep -hn FOO {} \;

Answered by jkshah

Solution #3

The following is taken from the man page:

-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.

Answered by TC1

Post is based on