Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Bash:如何在所有子目录中名为output.log的所有文件中搜索特定短语_Linux_Bash_Grep_Find_Command Line Interface - Fatal编程技术网

Linux Bash:如何在所有子目录中名为output.log的所有文件中搜索特定短语

Linux Bash:如何在所有子目录中名为output.log的所有文件中搜索特定短语,linux,bash,grep,find,command-line-interface,Linux,Bash,Grep,Find,Command Line Interface,我正在努力想办法做到这一点,而搜索结果却不多。。我觉得我需要做一个剧本 假设我有一个名为“Log outputs”的目录。在“日志输出”中,我有一个2016年、2015年、2014年的文件夹。。在每一个里面我有一月,二月,三月。。最后,在每个文件夹中都会有一个名为output.log的文件 如何在“Log outputs”目录中运行命令,扫描所有子目录以查找名为“output.Log”的文件,然后在此日志文件中搜索特定短语。我不需要它来搜索output.log之外的任何其他文件,目录可以组织为X

我正在努力想办法做到这一点,而搜索结果却不多。。我觉得我需要做一个剧本

假设我有一个名为“Log outputs”的目录。在“日志输出”中,我有一个2016年、2015年、2014年的文件夹。。在每一个里面我有一月,二月,三月。。最后,在每个文件夹中都会有一个名为output.log的文件

如何在“Log outputs”目录中运行命令,扫描所有子目录以查找名为“output.Log”的文件,然后在此日志文件中搜索特定短语。我不需要它来搜索output.log之外的任何其他文件,目录可以组织为X个子目录

尽管玩了很长一段时间,还是弄不懂这个

find 'Log outputs' -name 'output.log' -exec grep 'searchkey' {} \;
如果需要查看文件名和行号,请将
-Hn
添加到grep命令中


如果需要查看文件名和行号,请将
-Hn
添加到grep命令。

完成得很好;我建议更换
\+
进行编码>以提高效率(通常只需调用一次
grep
。然后将逻辑颠倒:
-h
用于抑制文件前缀)。@mklement0:Nice。今天我从你的评论中学到了很多。太棒了,谢谢。看起来效率很高,完成得很快。有一件事我不确定:什么是\;正如mklement0所提到的vs+,做得很好;我建议更换
\+
进行编码>以提高效率(通常只需调用一次
grep
。然后将逻辑颠倒:
-h
用于抑制文件前缀)。@mklement0:Nice。今天我从你的评论中学到了很多。太棒了,谢谢。看起来效率很高,完成得很快。有一件事我不确定:什么是\;如mklement0所述的vs+吗?