2010-06-18 147 views
1

xxxxxxxxmessageyyyyyyymessagexxxxxxxxxx提取日誌文件

xxxxxxxxmessagezzzzzzzmessagexxxxxxxxxx 

xxxxxxxxmessageaaaaaaamessagexxxxxxxxxx 

xxxxxxxxmessageyyyyyyymessagexxxxxxxxxx 

以上是我需要提取這是消息標記內的短語我的日誌文件,我需要保存在文件中的不同消息在上面的例子中我需要將zzzzzzz和aaaaaaa保存到文件中。

什麼是我需要使用的UNIX命令。

+0

考慮AWK或Perl – 2010-06-18 04:57:52

+0

哪些程序產生這樣的日誌文件? :-S – 2010-06-18 04:57:56

+0

你的問題很不清楚。通過「消息標籤」,我想你的意思是在行的開頭是8個x,在末尾是10個x。用「不同的」表示一條消息應該只記錄一次?你是否省略了yyyyyyy's,因爲它們是重複的,還是因爲它們在第一行和最後一行? – Beta 2010-06-18 05:02:45

回答

0

AWK:

awk -f script.awk <infile> outfile
BEGIN 
{ 
    s=0 
} 

s==0 && /yyyyy/ 
{ 
    s=1 
    next 
} 

s==1 && /yyyyy/ 
{ 
    exit 
} 

{ 
    print 
} 

運行。

0

有十幾種方法可以實現這一點。我測試的一個:

(sed 's/xx//g' | sed 's/message//g')<tstlog >processed.log 

產生

yyyyyyy 

zzzzzzz 

aaaaaaa 

yyyyyyy 

另外,如果你想省略空行,你可以像添加的東西:

(sed 's/xx//g' | sed 's/message//g' | grep -v ^$) <tstlog>processed.log