- 论坛徽章:
- 307
|
回复 1# dahaoshanhe
你试下,- #!/usr/bin/perl
- use strict;
- use warnings;
- sub Join{
- my $sID = shift;
- if (@_ > 1){
- printf ("%s %s\n",$sID,join ("-", @_[0, -1]));
- }else{
- printf ("%s %s\n",$sID, join ("-", $_[0], $_[0]));
- }
- }
- my @aData;
- foreach (`sort -t" " -k1,1n -k2,2n f`){
- my @aList = split;
- if (!@aData){
- @aData = @aList;
- next;
- }
- if ($aData[0] == $aList[0]){
- if ($aData[-1] + 1 == $aList[-1]){
- push (@aData, $aList[-1]);
- }else{
- Join (@aData);
- $#aData = 0;
- push (@aData, $aList[-1]);
- }
- next;
- }
- Join (@aData);
- @aData = @aList;
- }
- Join (@aData);
复制代码 111 1-3
222 6-6
222 9-10
333 3-7
|
|