Chinaunix
标题:
文本处理
[打印本页]
作者:
mingming_song
时间:
2012-10-29 15:17
标题:
文本处理
本帖最后由 mingming_song 于 2012-10-30 09:52 编辑
1111111111111111
作者:
zhaopingzi
时间:
2012-10-29 18:05
我只看到 天上人间
作者:
seesea2517
时间:
2012-10-30 09:33
http://xwb.gyyx.cn/
敢情楼主是光宇的呐。
作者:
mingming_song
时间:
2012-10-30 09:34
回复
3#
seesea2517
呵呵,是啊,之前shell一直用,后来很长一段时间不用了,真心忘得差不多了
作者:
seesea2517
时间:
2012-10-30 09:38
看需要,相当于你是要按照故障的类型做一个汇总吗?
作者:
seesea2517
时间:
2012-10-30 10:56
不确定是不是你所要,也不知道结果对不对,你确认一下:
[seesea@UC log]$ awk -f log.awk duanxin.txt
故障总数:10
故障id:463
发生时间:2012-10-15 08:19
发现时间:08:04
发送短信时间:2012-10-15 8:21:35
故障总数:40
故障id:454
发生时间:2012-10-09 13:22
发现时间:13:22
发送短信时间:2012-10-9 13:44:15
故障总数:1
故障id:456
发生时间:2012-10-07 20:02
发现时间:20:02
发送短信时间:2012-10-10 11:29:04
故障总数:24
故障id:466
发生时间:2012-10-16 23:51
发现时间:23:46
发送短信时间:2012-10-16 23:56:25
故障总数:9
故障id:460
发生时间:2012-10-09 21:01
发现时间:20:47
发送短信时间:2012-10-9 21:14:43
故障总数:14
故障id:451
发生时间:2012-10-05 12:24
发现时间:12:30
发送短信时间:2012-10-5 13:11:19
故障总数:13
故障id:452
发生时间:2012-10-07 03:03
发现时间:03:10
发送短信时间:2012-10-7 3:24:28
复制代码
BEGIN {
state = -1
}
/故障提醒:故障ID为/ {
change_state()
if (! is_state_right(0))
{
reset_state()
next
}
if (match($0, /[0-9]+/) == 0)
{
reset_stat()
next
}
id = substr($0, RSTART, RLENGTH)
}
/^发生:/ {
change_state()
if (! is_state_right(1))
{
reset_state()
next
}
sub(/发生:/, "", $0)
occur = $0
}
/^发现:/ {
change_state()
if (! is_state_right(2))
{
reset_state()
next
}
sub(/发现:/, "", $0)
found = $0
}
/正式通知 接收时间:/ {
change_state()
is_state_right(3)
if (! is_state_right(3))
{
reset_state()
next
}
sub(/.*正式通知 接收时间:/, "", $0)
receive = $0
save_record()
}
END {
print_records()
}
function change_state() {
state = (state + 1) % 4
}
function is_state_right(dest) {
if (state == dest)
{
return 1
}
return 0
}
function reset_state() {
state = -1
}
function save_record()
{
++id_index[id]
if (id_index[id] > 1)
return
records[id,"occur"] = occur
records[id,"found"] = found
records[id,"receive"] = receive
}
function print_records() {
for (id in id_index)
{
print "故障总数:" id_index[id]
print "故障id:" id
print "发生时间:" records[id,"occur"]
print "发现时间:" records[id,"found"]
print "发送短信时间:" records[id,"receive"]
print ""
}
}
复制代码
作者:
seesea2517
时间:
2012-10-30 10:57
我觉得代码已经自解释了,就不多解释哈。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2