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
The -l argument should do what you want.
You can use xargs in combination with --null with grep or --print0 with ack. I find that ack speed is faster.
grep -lr --null searchterm * | xargs -I {} -0 echo {}
ack -lr --print0 searchterm * | xargs -I {} -0 echo {}