java - 以某种模式在 Linux 中搜索 Java 文件

标签 java linux shell grep find

我是 Linux 搜索新手。但需要编写一个脚本或命令来搜索一个文件夹(里面可以有其他目录)中遵循特定模式的所有java文件。

public class ${key} extends ${key}

其中变量 ${key} 是文件的名称。

一些示例:
将该文件的名称设为 Foo.java。 搜索模式:public class Foo extends foo。 其他变体:public class Foo extends com.example.foo

稍后需要对该脚本进行修改以执行其他 Java 文件内容搜索。

编辑:
我还需要选择 ${key} ,即我需要存储不带扩展名或路径的文件名,然后将其插入命令中。就像我们所做的那样(在 c/java 中): "public class"+ fname + "extends "+ "fname "

输出可以是这样的: ./src/com/foo/bar.java:公共(public)类 foobar 扩展 com.foo.foobar

最佳答案

我建议您考虑使用 find 命令并将其通过管道传输到 grep 命令。

find /directory -iname *.java | grep -e "class ${key}"

您也可以执行类似的操作来查找扩展它的类。您可以查找正则表达式以了解如何使其对于换行符和其他空白字符更加灵活。

关于java - 以某种模式在 Linux 中搜索 Java 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48565241/

相关文章:

linux - 通过shell脚本分割一个文件

java - GOOGLE PLAY 服务异常 : com. google.android.gms.common.GooglePlayServicesUtil

java - 为什么推土机将空源对象传递给我的可配置自定义转换器?

linux - 如何在 Ubuntu 上获取 Docker 桌面?

linux - 为什么 POSIX 要求 system(3) 忽略 SIGINT 和 SIGQUIT?

linux - 关于Uboot中的BOOTCMD

linux - 用 rsync 替换除一个文件之外的所有文件

c - c代码中su命令的使用

java - 使用此椭圆曲线点乘法计算的点不在曲线上,此类带来算术异常

java - Spring Security 不断将我重定向到登录页面