我目前在一个目录中有n个数据文件,每个文件至多有一行非常长的数据。 我的目录结构是
director/ data1.json data2.json data3.json
我知道这些文件中至less有一个包含了我正在寻找的关键字,但是由于这一行数据太长,它覆盖了我的整个terminal。 只有在执行关键字grep后,我如何才能得到文件名? 我使用的grep命令是:
grep keyword *.json
-l参数应该做你想要的。
-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.)
您可以将xargs与–null和grep或–print0结合使用。 我发现速度更快。
grep -lr --null searchterm * | xargs -I {} -0 echo {}
ack -lr --print0 searchterm * | xargs -I {} -0 echo {}