Сортировать список обратного поиска, игнорируя заголовок Perl - PullRequest
0 голосов
/ 24 марта 2011

У меня есть список.

27 IN PTR conf.<br> 27 IN PTR test.<br> 250 IN PTR testbed1.<br> 251 IN PTR testbed2.<br> 55 IN PTR t.<br> 48 IN PTR nagios.<br> 49 IN PTR cacti-01.<br> 29 IN PTR vmwlinux01.<br> 22 IN PTR regserver.<br> 6 IN PTR grpwise.<br> 18 IN PTR blah.<br> 28 IN PTR srver.<br> 60 IN PTR aiscons2.<br> 45 IN PTR digg.<br> 1 IN PTR ip-3-.<br> 2 IN PTR ip-3-.

Этот список имеет заголовок длиной 15 строк. Я хотел бы отсортировать этот список по номеру слева, от наименьшего к наибольшему.

Надеюсь, я бы закончил с таким списком

header ~~~~~~~~~~<br> 1 IN PTR ip-3-.<br> 2 IN PTR ip-3-. 6 IN PTR grpwise.<br> 18 IN PTR blah.<br> 22 IN PTR regserver.<br> 27 IN PTR conf.<br> 27 IN PTR test.<br> 28 IN PTR srver.<br> 29 IN PTR vmwlinux01.<br> 45 IN PTR digg.<br> 48 IN PTR nagios.<br> 49 IN PTR cacti-01.<br> 55 IN PTR t.<br> 60 IN PTR aiscons2.<br> 250 IN PTR testbed1.<br> 251 IN PTR testbed2.

Я не знаю, с чего начать кодировать это. Я думал об использовании tail -n $lc $file | sort -g, где $ lc - это количество строк минус заголовок, а $ file - файл для сортировки.

Есть предложения?

Спасибо

Кстати, я изменил имена из соображений безопасности.

1 Ответ

1 голос
/ 24 марта 2011

Если файл не очень большой, вы можете прочитать его в массив и отсортировать строки численно:

open my $fh, '<', $file or die $!;

my @lines = <$fh>;

print @lines[0..14];  # the header
print sort { $a <=> $b } @lines[15..$#lines]; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...