zgrep的參數問題 - Linux

By David
at 2008-08-26T10:59
at 2008-08-26T10:59
Table of Contents
您說的對阿,
我自己也想過兩三種方法,
答案都是對的,
之所以不能用全部都是考慮效能的問題,
像是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")
: : 謝謝告知~
--
我自己也想過兩三種方法,
答案都是對的,
之所以不能用全部都是考慮效能的問題,
像是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")
: : 謝謝告知~
--
Tags:
Linux
All Comments
Related Posts
zgrep的參數問題

By Edith
at 2008-08-26T10:47
at 2008-08-26T10:47
zgrep的參數問題

By Cara
at 2008-08-26T10:37
at 2008-08-26T10:37
zgrep的參數問題

By Brianna
at 2008-08-26T09:37
at 2008-08-26T09:37
eeepc 901 的硬碟空間

By Liam
at 2008-08-26T07:15
at 2008-08-26T07:15
Fedora 9 安裝好後,無法看到網路芳鄰

By Caroline
at 2008-08-26T06:09
at 2008-08-26T06:09