在 linux 中搜索文本模式

sof*_*ter 24 linux bash

我是Linux新手。我需要在 /home/user1/(包括子文件夹)下的所有 *.java 文件中搜索字符串“teststring”。我如何通过 shell 命令在 linux 中做到这一点。

Gil*_*il' 27

最简单的方法是使用 GNU grep 的特性:

grep -r --include '*.java' teststring /home/user1
Run Code Online (Sandbox Code Playgroud)

如果你曾经使用过另一个没有 GNU grep 的 unix 变体,这里有一个可移植的方法:

find /home/user1 -name '*.java' -exec grep teststring {} +
Run Code Online (Sandbox Code Playgroud)

  • 如果您正在搜索当前目录和所有文件,则它是 `grep -r teststring 。` (2认同)

Ben*_*oit 5

使用ack你只需输入:cd /home/user01 && ack --java teststring


zze*_*roo 5

对于这个ack又名ack-grep,它是我心目中的杀手级应用程序;)

你可以ack some_string /in/path_y找到some_stringpath_y 或者更简单的ack some_other_string找到some_other_sting在当前目录下。