- 论坛徽章:
- 0
|
献丑了~~~~
- #!/usr/bin/perl
- use strict;
- my $data_file = "data.txt";
- open (DATA,$data_file) or
- die "ERR: Cannot open data file: $!\n";
- my ($record,$name);
- while (<DATA>) {
- ### 一个记录开始
- if (/^(\S+) =\s*$/) {
- $name = $1; $record->{ $name } = {};
- }
- ### 提取 IP 和 PORT 信息
- if (/HOST\s+=\s+([\d\.]+)\)\(PORT\s+=\s+(\d+)\)/) {
- $record->{ $name }->{ 'ip' } = $1;
- $record->{ $name }->{ 'port' } = $2;
- }
- ### 提取 SERVICE_NAME 信息
- elsif (/SERVICE_NAME\s+=\s+(\S+)\)/) {
- $record->{ $name }->{ 'service_name' } = $1;
- }
- }
- close (DATA);
- foreach $name (keys %$record) {
- print "$name\t" .
- $record->{ $name }->{ 'ip' } . "\t" .
- $record->{ $name }->{ 'port' } . "\t" .
- $record->{ $name }->{ 'service_name' } . "\n";
- }
复制代码
抛砖引玉,期待更好的代码.... |
|