我需要知道完整的文件路径grep.
我使用像这样的命令
cat *.log | grep somethingtosearch
Run Code Online (Sandbox Code Playgroud)
现在我需要用完整的文件路径显示结果,从中取出匹配的结果.
帮助任何人?
dev*_*ull 18
你尝试过用-l旗帜吗?
grep -l somethingtosearch
Run Code Online (Sandbox Code Playgroud)
这将仅返回找到搜索的路径和文件名,而不是返回匹配的整行.
与-r标志一起使用以进行递归.
Kaa*_*zia 13
假设您有两个日志文件:
cd到C:并使用:
grep -r somethingtosearch temp/*.log
Run Code Online (Sandbox Code Playgroud)
它将为您提供如下列表:
temp/my.log:somethingtosearch
temp/alsoMy.log:somethingtosearch1
temp/alsoMy.log:somethingtosearch2
Run Code Online (Sandbox Code Playgroud)
小智 10
命令:
grep -rl --include="*.js" "searchString" ${PWD}
Run Code Online (Sandbox Code Playgroud)
返回的输出:
/root/test/bas.js
Run Code Online (Sandbox Code Playgroud)
如果你想看到完整的路径,我会建议到cd顶级目录(如果使用Windows,你的驱动器)
cd C:\
grep -r somethingtosearch C:\Users\Ozzesh\temp
Run Code Online (Sandbox Code Playgroud)
或者在Linux上:
cd /
grep -r somethingtosearch ~/temp
Run Code Online (Sandbox Code Playgroud)
如果你真的抵制你的文件名过滤(*.log)并且你想要recursive(文件不在同一个目录中),那么组合find并且grep是最灵活的方式:
cd /
find ~/temp -iname '*.log' -type f -exec grep somethingtosearch '{}' \;
Run Code Online (Sandbox Code Playgroud)
小智 5
当我完全寻找相同的问题时,我就落在这里,也许它可以帮助其他人。
我认为真正的解决方案是:
cat *.log | grep -H somethingtosearch
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
84639 次 |
| 最近记录: |