我有一些數據文件,這基本上都坐格式慶典找到鏈接到的grep,然後打印
索引文件的一系列索引文件:asdfg.log.1234.2345.index
數據文件:asdfg的.log
的想法是做搜索的所有索引文件。如果值XXXX出現在一個索引文件中,請去grep其相應的數據文件並在數據文件中打印XXXX出現的那一行。
到目前爲止,我可以簡單地在索引文件中搜索值XXXX,例如
find . -name "*.index" | xargs grep "XXXX" // Gives me a list of the index files with XXXX in them
如何使索引文件匹配,然後grep其相應的數據文件?
謝謝喬納森 - 多數民衆贊成在我以後的初始sed沒有完全,所以我把它換了。感謝壽 SED的/ \。登錄。* /日誌/' – wmitchell 2010-07-20 14:22:24
如果你的文件被稱爲與空間名稱這將會失敗,「或」,要知道爲什麼http://en.wikipedia.org/wiki/ Xargs#The_separator_problem 使用GNU Parallel http://www.gnu.org/software/parallel/分隔符問題僅限於包含\ n的文件名\ n。 find。-name'* .index'| parallel grep -l 「XXXX」| sed's/\。log \。* /。log /'| sort -u | parallel grep「XXXX」 在http://www.youtube上觀看GNU Parallel的介紹視頻。 com/watch?v = OpaiGYxkSuQ – 2010-08-01 14:02:51
@Ole:同意這會在文件名中對空格,換行符等進行犯規 - 然而,這個問題是在一個假設沒有這種複雜性的前提下提出的(它使用簡單的'find',而不是'find ... -print0',它使用普通的'xargs'而不是'xargs -0'),所以給出的答案適用於相同的環境。 – 2010-08-01 14:34:25