find + grep 组合

来源:互联网 发布:sql case语句用法 编辑:程序博客网 时间:2024/05/29 02:41
在日志中,发现大量“ERROR [STDERR] Failed to get bi”的错误提示,这无疑是System.err.println("Failed to get bi")的结果。当时,偷懒了,现在数千个java文件,几十万行代码中,找到那个文件呢。
当初,如果用log.fatal之类,就不会出现这样的问题了。
比如,
FATAL [yulog.BaseUtil] ^E
FATAL [yulog.FeedServlet] 无效字符:最好用的20句生活英语
这样的错误提示,就能准确地定位到
ulog.FeedServlet文件。

在windows操作系统中,可以容易地用查找workspace里面所有包含“
Failed to get bi”的文件即可。
在linux中,find+grep可以搞定,但是具体的命令参数呢?
Google了一下,解决了问题。
find . -name "*.java" -exec grep "Failed to get bi" -nH {} \;
./elib/src/elib/web/BookAction.java:230:                        System.err.println("Failed to get bi");
定位到了文件中的行数,这正是我要的结果。
原创粉丝点击