Re: [問題] zgrep的參數問題

看板Linux作者 (Sam)時間17年前 (2008/08/26 10:59), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串7/8 (看更多)
您說的對阿, 我自己也想過兩三種方法, 答案都是對的, 之所以不能用全部都是考慮效能的問題, 像是zcat *.gz | grep "http"這種指令, 他會把所有gz檔案都讀取一遍之後, 才會去pipe給 grep, 這樣一來只要我的gz檔案一大(像是200 mb), 這樣就會非常的慢, 另外像是 zgrep -m 的這種指令, 卻又會每個檔案讀取一次, 如果他有參數能把所有檔案(*.gz)當成一個檔案來讀取, 事情就非常完美了~ 因此我仍在尋找對策, 感謝您的回答~ ※ 引述《vincente (文生弟)》之銘言: : 對吼,我沒有追到原 po 是我疏忽了。 : 那你就可以用 zcat *.gz | grep -m 5 "http" 來做。 : zcat *.gz 應該會把所有 *.gz 的檔案組合成一個 stream 。 : 導給 grep 來尋找,用 -m 參數之後,他就會在第五筆停下。 : 這應該才是你要的吧。 : 你好像自己已經知道要怎麼做了呀.... : ※ 引述《sacanner (Sam)》之銘言: : : 感謝您的回答, : : ls *.gz | head -5 | xargs zgrep "http" : : 這個指令如果在前五個gz檔中都找不到http, : : 好像答案會怪怪的,因此其他gz檔裡面可能有http字眼說(我猜想的) : : 另外,不過我記得我在首篇文章中已提出-m的參數, : : 我發現他跟我要的很像, : : 不過就差在它會在每個檔案抓五個相符的出來, : : 而我則不管任何gz檔案, : : 只要某個檔案含五筆就行, : : 其他檔案就不繼續搜尋, : : 也就可以節省全部搜完再|的時間(如:zcat *.gz |grep "http") : : 謝謝告知~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.146.194.91
文章代碼(AID): #18it5tWa (Linux)
討論串 (同標題文章)
文章代碼(AID): #18it5tWa (Linux)