How to show filenames only after a keyword grep search

grep

I currently have n data files in a directory where each file has at most 1 line of very long data. My directory structure is

director/
    data1.json
    data2.json
    data3.json

I know that at least one of those files contain the keyword I'm looking for, but since the one line of data is too long, it covers my entire terminal. How do I get the filename only after performing a keyword grep? The grep command I'm using is:

grep keyword *.json

Best Answer

The -l argument should do what you want.

   -l, --files-with-matches
          Suppress  normal  output;  instead  print the name of each input
          file from which output would normally have  been  printed.   The
          scanning  will  stop  on  the  first match.  (-l is specified by
          POSIX.)
Related Topic