perl – 按MAC地址排序

我有一个由设备信息组成的长.csv文件.每一行都是一个独特的设备,其中列出了自己的信息:

MACaddr,Date,"b,n",blahblahblah

我需要做的是接收文件,然后写入一个新文件,其中所有具有相同供应商MAC(即MAC地址的前3个八位字节)的线路/设备组合在一起.我可以很容易地接受每一行并使用正则表达式获取供应商MAC但是我被卡住了.

我只有:

#!usr/bin/perl
use strict;
use warnings;

open IN,"wirelessClients.csv" or die "Couldn't open file\n$!";
open OUT,">sortedClients.csv" or die "Couldn't open out file\n$!";

my @clients = <IN>;

foreach my $client (@clients)
{
    if($client =~ /^(\w+:\w+:\w+)/)
    {
        print OUT "$1,$client\n\n"; 
    }
}

我不知道如何分类信息.

任何帮助和/或指导将不胜感激!

解决方法

如果MAC地址是第一个元素,则简单排序应该将具有相同前3个八位字节的组分组:

sort wirelessClients.csv > sortedClients.csv

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...