2015-04-14 18 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 
相关问题