Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.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
Java Grep库_Java_Grep - Fatal编程技术网

Java Grep库

Java Grep库,java,grep,Java,Grep,有没有好的、简单的JavaGrep库?我不反对本机代码或脚本,我会这么做,但就我的目的而言,吞吐量并不是一个大问题,如果能将所有这些都放在一个整洁的包中就好了 更新:对不起。我知道java.regex,只是碰巧我现在很忙很累。我要寻找的是能够有效地将java正则表达式与遍历一组文件并重写它们结合起来的东西。我承认,写这本书并不难。我只是好奇它是否已经存在 内部使用java.util.regex.Pattern和Matcher我不知道有复杂的grep librarystrong文本,但你是对的:编

有没有好的、简单的JavaGrep库?我不反对本机代码或脚本,我会这么做,但就我的目的而言,吞吐量并不是一个大问题,如果能将所有这些都放在一个整洁的包中就好了

更新:对不起。我知道java.regex,只是碰巧我现在很忙很累。我要寻找的是能够有效地将java正则表达式与遍历一组文件并重写它们结合起来的东西。我承认,写这本书并不难。我只是好奇它是否已经存在 内部使用
java.util.regex.Pattern
Matcher
我不知道有复杂的grep librarystrong文本,但你是对的:编写并不困难。 我建议组合使用
commons io
String.matches(someRegex)



UpdateMarco指出了
Unix4j
,这是一个非常有趣的库,它模拟了unix管道
|
和Java方法链接<支持代码>grep以及
cat、cd、cut、echo、find、grep、head、ls、sed、sort、tail、uniq、wc、驳船
是的。Grep4j-一个用于Unix环境的grep库,您还可以轻松远程grep:

Unix4j还实现了一个(纯java)grep命令:


免责声明:我是unix4j项目的贡献者之一。

您拼错了模式。修好它,这是正确的答案这或多或少是我最后写的,只是我使用了非常好的FileUtils.listFiles来过滤东西。仅供参考,这不是纯java grep,它需要在机器上运行grep。@jk。您能告诉我它是否也适用于windows版本的grep吗?我在使用maven central repository提供的grep4j 1.8.7时遇到了问题。它使用了非常旧的Lombok版本,而我的项目使用的是最新版本。在第一次构建项目时,发生了一些编译错误,这些错误在重新构建时消失了。
public class Grep extends DirectoryWalker
{
    public Grep(){
        super();
    }

    public List clean(File startDirectory){
      List results = new ArrayList();
      walk(startDirectory, results);
      return results;
    }

    protected boolean handleDirectory(File directory,
                                      int depth, Collection results){
      // Decide if a (sub) directory will be handled for recursive search
      return true;
    }

    protected void handleFile(File file, int depth, Collection results)
    {
        LineIterator it = FileUtils.lineIterator(file, "UTF-8");
        try{
            while (it.hasNext()){
                String line = it.nextLine();
                if(line.matches("myRegEx")){
                    results.add(file);
                }
            }
         }
         finally {LineIterator.closeQuietly(it);}
    }
}
Unix4j.fromStrings("1:A", "2:B", "3:AB", "4:AC", "5:ABC").toFile("myFile.txt");
Unix4j.fromFile("myFile.txt").grep("AB").toStdOut();

>>>
3:AB 
5:ABC