2012-03-30 89 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 
相關問題