我是 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/