s****n 发帖数: 700 | 1 【 以下文字转载自 Linux 讨论区 】
发信人: sallen (looking for job), 信区: Linux
标 题: 一个头痛的regular expression问题
发信站: BBS 未名空间站 (Thu Aug 27 01:27:26 2009, 美东)
这个问题我想了很长时间,还是没有解决办法。请高手指点一下。
我有一个logfile格式如下
send ........
send ........
................
............
send..........
...................
................
send..........
heartbeat..........
...............
send........
...........
.........
send..........
send.........
send..........
heartbeat..........
....
send...
.....
heatbeat....
....
我现在想找出所有的在heartb | o*o 发帖数: 404 | 2 这还要什么regular expression呀?
egrep '^send|^heartbeat' logfile
【在 s****n 的大作中提到】 : 【 以下文字转载自 Linux 讨论区 】 : 发信人: sallen (looking for job), 信区: Linux : 标 题: 一个头痛的regular expression问题 : 发信站: BBS 未名空间站 (Thu Aug 27 01:27:26 2009, 美东) : 这个问题我想了很长时间,还是没有解决办法。请高手指点一下。 : 我有一个logfile格式如下 : send ........ : send ........ : ................ : ............
| j*****a 发帖数: 436 | 3 #!/usr/bin/perl
open FILE, "logfile" or die "Couldn't open file: $!";
my $string;
while () {
$string .= $_;
}
close FILE;
$string =~ s/(send.*\n)+[^heartbeat|^send].*\n([^send].*\n)*//g;
$string =~ s/\n[^heartbeat|^send].*\n/\n/g;
print $string; |
|