Java Grep Library
有没有好的,简单的Java Grep库?我不反对本机代码或脚本编写,我会这样做,但就我而言,吞吐量不是一个大问题,如果将它们全部放在一个整洁的包中会很好。
更新:抱歉。我知道java.regex,我现在只是碰巧相当忙碌和疲惫。我正在寻找的是能够有效地将java正则表达式与浏览一组文件并重写它们结合起来的东西。我承认,这并不难写。我只是好奇这是否已经存在。
有没有好的,简单的Java Grep库?我不反对本机代码或脚本编写,我会这样做,但就我而言,吞吐量不是一个大问题,如果将它们全部放在一个整洁的包中会很好。
更新:抱歉。我知道java.regex,我现在只是碰巧相当忙碌和疲惫。我正在寻找的是能够有效地将java正则表达式与浏览一组文件并重写它们结合起来的东西。我承认,这并不难写。我只是好奇这是否已经存在。
我不知道一个复杂的grep库强文本,但你是对的:它并不难写。我建议和的组合:commons-io
String.matches(someRegex)
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);}
}
}
更新Marco指出这是一个非常有趣的库,它模拟了带有Java方法链接的unix流水线。 以及 支持 。Unix4j
|
grep
cat, cd, cut, echo, find, grep, head, ls, sed, sort, tail, uniq, wc, barges
Unix4j还实现了一个(纯java)grep命令:http://www.unix4j.org
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
免責聲明:我是unix4j项目的贡献者之一。