#!/usr/bin/perl use strict; my $string; while( ) { $string = $string . join " ", split( /\:/ ); } my $data = join "\n", map { $_->[0] } sort { $a->[1] <=> $b->[1] } map { [$_, (split)[0]] } split( /\n/, $string); print $data; __DATA__ 2.225:0:1248266065752:Y:282 2.232:0:1248266069770:Y:500 2.225:1:1248266072861:Y:438 2.232:1:1248266075785:Y:328 2.225:1:1248266081283:Y:297 2.232:1:1248266082035:Y:328 2.232:1:1248266087410:Y:281 2.225:1:1248266088768:Y:296 2.232:1:1248266091426:Y:281