2015-04-14 20 views
0

我想一個腳本,從文件中提取xyz.rawlog日誌,然後創建一個XYZ目錄的文件全名爲:有人可以幫助我將日誌文件分隔爲每個小時和每天的單獨文件嗎?

Arp-14-00.rawlog 
Apr-14-01.rawlog 
Full example: 
~/xyz/Apr-14-02.rawlog 

一個可能的問題:登錄線路可能有一天領域的領先0,或它可能被分開。

Example: 
Apr 01 12: 
Apr 1 12: 

抽樣日誌:

Apr 14 02:35:33 DC501.xx.org/10.1.7.145/1.13.136.2 MSWinEventLog,4,Security,3959142,Tue Apr 14 02:35:32 2015,4769,Microsoft-Windows-Security-Auditing,XX.ORG\[email protected],N/A,Success Audit,DC501.xx.org,Kerberos Service Ticket Operations,,A Kerberos service ticket was requested. Account Information: Account Name: [email protected] Account Domain: XX.ORG Logon GUID: {2F6FCDED-FBA0-DBF5-88D2-0B048E612E21} Service Information: Service Name: AHCTXXML501$ Service ID: ... – Joshua C. 44 mins ago 

Apr 14 04:32:16 1232-devr01/127.0.0.1/1.14.0.65 kernel: iptables:IN= OUT=upstream1 SRC=2.7.1.238 DST=207.188.35.17 EN=52 TOS=0x00 PREC=0x00 TTL=64 ID=2574 DF PROTO=TCP SPT=34030 DPT=61613 WINDOW=112 RES=0x00 ACK PSH FIN URGP=0 – 

這就是我想要的命令語法。

~/Logsplit.sh xyz 

工作腳本:

#/bin/bash 
mkdir $1 
awk -v fpath="$1" -F":" '{ 
    filename = fpath "/" gensub("[ ]+", "-", "g", $1) ".rawlog"; 
    print >> filename 
}' $1.rawlog 

exit; 
+0

你可以顯示日誌文件的內容的例子嗎? –

+0

有各種日誌類型,但日期字段總是在前面。以下是示例Windows和Unix日誌。 –

回答

1

如果我正確地理解你的問題,你想拆日期,內容,其中的內容全部行將被插入到該新文件中。 你可以這樣做:

`

mkdir $1 
awk -v fpath="$1" -F":" '{ 
    filename = fpath "/" gensub("[ ]+", "-", "g", $1) ".rawlog"; 
    print >> filename 
}' $1.rawlog 

`

1

這應該這樣做:

awk -F: '{split($1,a," ");print $1 > a[1]"_"a[2]+0"_"a[3]+0".log"}' *.rawlog 
相關問題