我需要知道完整的文件路径grep
。
我使用类似的命令
cat *.log | grep somethingtosearch
现在我需要用完整的文件路径显示结果,从其中取出匹配的结果。
帮助任何人?
假设您有两个日志文件:
cd 到 C: 并使用:
grep -r somethingtosearch temp/*.log
它会给你一个类似的列表:
temp/my.log:somethingtosearch
temp/alsoMy.log:somethingtosearch1
temp/alsoMy.log:somethingtosearch2
当我正在寻找完全相同的问题时,我跌倒在这里,也许它可以帮助其他人。
我认为真正的解决方案是:
cat *.log | grep -H somethingtosearch
如果您想查看完整路径,我建议您cd
到顶级目录(如果使用 Windows,则为您的驱动器)
cd C:\
grep -r somethingtosearch C:\Users\Ozzesh\temp
或者在 Linux 上:
cd /
grep -r somethingtosearch ~/temp
如果你真的反对你的文件名过滤 (*.log) 并且你想要recursive
(文件并不都在同一个目录中),组合find
和grep
是最灵活的方式:
cd /
find ~/temp -iname '*.log' -type f -exec grep somethingtosearch '{}' \;
命令:
grep -rl --include="*.js" "searchString" ${PWD}
返回输出:
/root/test/bas.js
为了我
grep -b "searchsomething" *.log
按我的意愿工作
打印完整路径的最简单方法是将相对起始路径替换为绝对路径:
grep -r --include="*.sh" "pattern" ${PWD}
采用:
grep somethingtosearch *.log
并且文件名将与匹配项一起打印出来。