2011-03-24 35 views
0

我有一個列表。排序反向查找列表,同時忽略標題perl

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

該列表具有報頭是15行長。我想按照左邊的數字排列這個列表,從最小到最大。

希望,我將最終得到一個列表這樣

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

我不知道從哪裏開始實現代碼。我想過使用tail -n $lc $file | sort -g其中$ lc是行數減去標題,$ file是要排序的文件。

有什麼建議嗎?

謝謝

順便說一句,我出於安全原因更改了名稱。

回答

1

數字如果文件不是很大,你可以閱讀到一個數組和排序行:

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

my @lines = <$fh>; 

print @lines[0..14]; # the header 
print sort { $a <=> $b } @lines[15..$#lines];