40

我需要知道完整的文件路径grep

我使用类似的命令

cat *.log | grep somethingtosearch

现在我需要用完整的文件路径显示结果,从其中取出匹配的结果。

帮助任何人?

4

8 回答 8

21

假设您有两个日志文件:

  • C:/temp/my.log
  • C:/temp/alsoMy.log

cd 到 C: 并使用:

grep -r somethingtosearch temp/*.log

它会给你一个类似的列表:

temp/my.log:somethingtosearch
temp/alsoMy.log:somethingtosearch1
temp/alsoMy.log:somethingtosearch2
于 2012-12-14T09:47:10.373 回答
11

当我正在寻找完全相同的问题时,我跌倒在这里,也许它可以帮助其他人。

我认为真正的解决方案是:

cat *.log | grep -H somethingtosearch
于 2018-01-31T10:47:23.007 回答
5

如果您想查看完整路径,我建议您cd到顶级目录(如果使用 Windows,则为您的驱动器)

cd C:\
grep -r somethingtosearch C:\Users\Ozzesh\temp

或者在 Linux 上:

cd /
grep -r somethingtosearch ~/temp

如果你真的反对你的文件名过滤 (*.log) 并且你想要recursive(文件并不都在同一个目录中),组合findgrep是最灵活的方式:

cd /
find ~/temp -iname '*.log' -type f -exec grep somethingtosearch '{}' \;
于 2013-08-06T11:11:51.093 回答
2

命令:

grep -rl --include="*.js" "searchString" ${PWD}

返回输出:

/root/test/bas.js
于 2017-11-21T18:17:01.457 回答
2

这类似于BVB Media的回答。

grep -rnw 'blablabla' `pwd`

它在我的 ubuntu bash 上运行良好。

于 2018-03-12T04:20:08.067 回答
0

为了我

grep -b "searchsomething" *.log

按我的意愿工作

于 2013-08-06T10:28:22.660 回答
0

打印完整路径的最简单方法是将相对起始路径替换为绝对路径:

grep -r --include="*.sh" "pattern" ${PWD}
于 2017-06-07T09:18:00.353 回答
-1

采用:

grep somethingtosearch *.log

并且文件名将与匹配项一起打印出来。

于 2012-12-14T08:58:04.897 回答