我目前在一个目录中有 n 个数据文件,每个文件最多有 1 行很长的数据。我的目录结构是
director/
data1.json
data2.json
data3.json
我知道这些文件中至少有一个包含我要查找的关键字,但是由于一行数据太长,它覆盖了我的整个终端。仅在执行关键字 grep 后如何获取文件名?我正在使用的 grep 命令是:
grep keyword *.json
我目前在一个目录中有 n 个数据文件,每个文件最多有 1 行很长的数据。我的目录结构是
director/
data1.json
data2.json
data3.json
我知道这些文件中至少有一个包含我要查找的关键字,但是由于一行数据太长,它覆盖了我的整个终端。仅在执行关键字 grep 后如何获取文件名?我正在使用的 grep 命令是:
grep keyword *.json
-l 参数应该做你想做的事。
您可以将 xargs 与 --null 与 grep 或 --print0 与 ack 结合使用。我发现ack速度更快。
grep -lr --null searchterm * | xargs -I {} -0 echo {}
ack -lr --print0 searchterm * | xargs -I {} -0 echo {}