我需要知道完整的文件path,当我grep
。
我使用类似命令
cat *.log | grep somethingtosearch
现在我需要显示的结果与完整的文件path从匹配的结果被取出的地方。
帮助任何人?
假设你有两个日志文件:
cd到C:并使用:
grep -r somethingtosearch temp/*.log
它会给你一个列表,如:
temp/my.log:somethingtosearch temp/alsoMy.log:somethingtosearch1 temp/alsoMy.log:somethingtosearch2
你有没有尝试使用-l
标志?
grep -l somethingtosearch
这将只返回找到搜索的路径和文件名,而不是返回匹配的所有行。
使用-r
标志进行递归。
如果你想看到完整的路径,我会建议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 -b“searchsomething”* .log以我想要的方式工作
打印完整路径的最简单方法是用绝对路径替换相对的开始路径:
grep -r --include="*.sh" "pattern" ${PWD}
命令:
grep -rl --include="*.js" "searchString" ${PWD}
返回输出:
/root/test/bas.js
使用:
grep somethingtosearch *.log
和文件名将被打印出来的比赛。