in reply to Advanced Bubble Sort
This?
#! perl -slw use strict; chomp( my @lines = <DATA> ); my $lastLine = shift @lines; my( $lastRoot, $lastVer ) = $lastLine =~ m[(^[^0-9]+)([0-9.-]+)]; $lastVer = pack 'C*', $lastVer =~ m[(\d+)+]g; for my $line ( @lines ) { my( $root, $ver ) = $line =~ m[(^[^0-9]+)([0-9\.-]+)]; $ver = pack 'C*', $ver =~ m[(\d+)+]g; if( $root eq $lastRoot ) { if( $ver gt $lastVer ) { $lastVer = $ver; $lastLine = $line; } } else { print $lastLine; $lastRoot = $root; $lastVer = $ver; $lastLine = $line } } print $lastLine; __DATA__ samba-common-libs-4.2.10-6.2.el7_2.x86_64 samba-common-libs-4.2.10-8.el7_2.x86_64 samba-common-libs-4.2.12-7.el7_2.x86_64 samba-common-libs-4.2.10-6.el7_2.x86_64 samba-common-libs-4.2.10-3.el7_2.x86_64 xyz-libs-4.2.10-7.el7_2.x86_64 xyz-libs-4.2.12-7.el7_2.x86_64 xyz-libs-4.2.13-7.el7_2.x86_64 xyz-libs-4.2.11-7.el7_2.x86_64 abc-4.2.11-7.el7_2.x86_64 abc-4.2.11-8.el7_2.x86_64 abc-4.2.11-6.el7_2.x86_64
Output:
C:\test>1173958 samba-common-libs-4.2.12-7.el7_2.x86_64 xyz-libs-4.2.13-7.el7_2.x86_64 abc-4.2.11-8.el7_2.x86_64
|
|---|