Linux搜索单词并显示整行

时间:2012-11-13 19:31:23

标签: linux find grep

我有一个非常大的日志文件(6 gig)。

我想搜索2012年11月12日'并打印每一行。

我是Linux新手,不知道如何做到这一点。很可能需要更多选项才能查看X行数并继续搜索。

6 个答案:

答案 0 :(得分:74)

grep --after-context=5 --before-context=10 'Nov 12 2012' yourfile.log

这将显示包含日期文本的每一行,以及匹配行之前的10行文本,以及匹配行之后的5行。

答案 1 :(得分:13)

您可以使用grep来显示匹配的行,并使用less作为寻呼机:

grep 'Nov 12 2012' /path/to/logfile | less

在每页末尾输入“空格”以前进到下一个结果屏幕。

答案 2 :(得分:6)

您可以按如下方式使用grep

grep 'Nov 12 2012' file_to_search.log > search_results.log

一些解释:

  • grep是用于搜索模式的命令/工具的名称
  • 'Nov 12 2012':在grep之后立即隔开至少1个空格,指定要搜索的模式
  • file_to_search.log:作为此处grep的最后一个参数,您指定要搜索的文件
  • > search_results.log>表示输出redirection。这意味着“将此命令的输出写入名为search_results.log的文件。如果该文件已存在,则完全覆盖它。

获得输出后,您可以使用您选择的文本编辑器或less查看结果,因此请使用以下任何一项:

less search_results.log
gedit search_results.log
emacs search_results.log
vim search_results.log

答案 3 :(得分:3)

以脚本格式打开文件,然后使用您要查找的关键字进行搜索,如下所示。

$vi <logfilename>
     &
:/search

答案 4 :(得分:1)

这是在大型日志文件中查找错误的好方法:grep --after-context = 5 --before-context = 10'Error'yourfile.log或grep --after-context = 5 --before- context = 10'例外'yourfile.log

答案 5 :(得分:0)

grep -A 5 -B 10'2012 11月12日'yourfile.log
-n n表示n行AFTER,-n n表示n行之前。 或两者一起 - 在搜索文本之前和之后的C n,n行。

相关问题