2012-03-30 103 views
3

有没有像缓存grep这样的东西?我正在考虑缓存发出grep的文件,以便它不需要重新遍历目录或重新加载这些文件。这样的事情已经存在吗?有没有像缓存grep这样的东西?

+3

我不这么认为,但是当你最近访问的文件,很可能是在您的硬盘驱动器上的快速闪存高速缓存(我觉得有些操作系统甚至在RAM中缓存文件),除了第一个grep之外,它应该会显着提高运行时间。 – 2012-03-30 17:52:26

+0

我想@XavierHolt回答了我的问题。我的意思是这部分“做了这样的事情已经存在”,意思是说 - 有没有办法让'grep'缓存。我知道Lucene,但AFAIK你不能真正运行在Lucene中找到的商店的正则表达式,而'grep'实际上需要正则表达式。抱歉,模棱两可。 – lucidquiet 2012-03-30 18:28:51

+0

如果您只是对相同文件中的新内容感兴趣,请查看File :: Tail perl模块。它就像'tail -f file | grep xyz'在shell中。 – Marki555 2012-03-30 21:19:31

回答

0

这听起来像你真正需要的是一个管道。 Grep通过允许您通过接受标准输入数据来重新过滤先前过滤的结果来处理此用例。

例如:

# Search for "bar" in lines that have "foo." 
grep foo * | grep bar 

# Search for "baz" in lines that don't have "quux." 
grep -v quux * | grep baz 
相关问题