我有一个非常大的日志文件(6演出)。
我想search“2012年11月12日”,并打印每一行。
我是一个Linux新手,不知道如何做到这一点。 很可能需要更多的选项来查看X行,并通过search向前移动。
grep --after-context=5 --before-context=10 'Nov 12 2012' yourfile.log
这将显示包含您的日期文本的每一行,以及在匹配的行之前的10行文本,以及匹配的行之后的5行。
您可以使用grep
来显示匹配的线路,而less
寻呼机:
grep 'Nov 12 2012' /path/to/logfile | less
在每个页面的末尾键入“空格”以前进到结果的下一个屏幕。
你可以使用grep
如下:
grep 'Nov 12 2012' file_to_search.log > search_results.log
一些解释:
grep
是用于搜索模式的命令/工具的名称 'Nov 12 2012'
:在grep
之后立即至少分隔一个空格,指定要搜索的模式 file_to_search.log
:作为这里grep
的最后一个参数,你指定你要搜索的文件 > search_results.log
: >
表示输出重定向 。 这里的意思是“把这个命令的输出写到一个名为search_results.log
的文件中,如果这个文件已经存在,就把它完全覆盖掉。 获得输出后,您可以使用您选择的文本编辑器查看结果,或使用less
的文本编辑器查看结果,请使用以下任一项:
less search_results.log gedit search_results.log emacs search_results.log vim search_results.log
以脚本格式打开文件,然后使用要查找的关键字进行搜索,如下所示。
$vi <logfilename> & :/search
这是在大日志文件中定位错误的好方法:grep –after-context = 5 –before-context = 10'错误'yourfile.log或grep –after-context = 5 –before-context = 10 '异常'yourfile.log