Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.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:在目录下的文件列表中搜索特定单词_Linux - Fatal编程技术网

Linux:在目录下的文件列表中搜索特定单词

Linux:在目录下的文件列表中搜索特定单词,linux,Linux,我在特定目录中有一个很大的日志文件列表,与Linux远程服务器下的java应用程序相关 当我在特定目录上执行ls时,它会显示一个文件列表(近100个文件) 现在在那个文件列表中,我需要找出一个特定的单词,请告诉我,我怎么做 问题是我无法打开每个文件并使用/ 请告诉我如何在提供的文件列表中搜索单词 您正在寻找命令 您可以阅读一些示例。grep就是为此而制作的 使用grep myword* 并检查mangrep这在linux中是一项非常频繁的任务。我使用grep-rn“”。一直在做这件事-r代表递归

我在特定目录中有一个很大的日志文件列表,与Linux远程服务器下的java应用程序相关

当我在特定目录上执行ls时,它会显示一个文件列表(近100个文件)

现在在那个文件列表中,我需要找出一个特定的单词,请告诉我,我怎么做

问题是我无法打开每个文件并使用/

请告诉我如何在提供的文件列表中搜索单词

您正在寻找命令


您可以阅读一些示例。

grep
就是为此而制作的

使用
grep myword*


并检查
mangrep

这在linux中是一项非常频繁的任务。我使用grep-rn“”。一直在做这件事-r代表递归(文件夹和子文件夹)-n所以它给出行号,点代表当前目录

grep -rn '<word or regex>' <location>

有关更多选项,您也可以尝试以下方法

find . -name '*.java' -exec grep "<yourword" /dev/null {} \;

find-名称“*.java'-exec grep”您可以使用以下命令:

grep -rn "string" *
n用于显示带有文件名的行号
r对于recursive

您可以使用exec找到如下内容,以获取文件列表以及您要查找的单词/字符串的出现情况

find . -exec grep "my word" '{}' \; -print
使用此命令
grep“your word”searchDirectory/*.log

获取更多有关此链接的信息


可能的重复我的意思是,不完全重复,但答案也在那里,可以在相关问题中轻松找到。@cgnorthcutt不太可能。对于子目录,您需要使用递归标志。对于已经存在的“目录”,如OP案例,您不需要。此外,
-n
标志是完全可选的,没有与“youneedto”关联的内容。要包含子目录,需要使用递归标志“-r”,如
grep-r“string”*
参见Ashkan的答案。以及cornuz的评论。
find . -exec grep "my word" '{}' \; -print