ñ Â ÓËÒÉÐÔ ÐÅÒÅÐÉÓÁÌ ÐÒÉÍÅÒÎÏ ÔÁË:<div><br></div><div><code></div><div>#!/perl -lan -F'_|-' --</div><div><div><br></div><div>$F[4] = { Jan => '01', Feb => '02', Mar => '03',</div>
<div>šš š š š šApr => '04', May => '05', Jun => '06',</div><div>šš š š š šJul => '07', Aug => '08', Sep => '09',</div><div>šš š š š šOct => š10, šNov => š11, šDec => š12 š}->{ $F[4] };</div>
<div><br></div><div>$date = join '-', @F[5,4,3];</div><div><br></div><div>$R{ $F[0] } = { file => $_, date => $date }</div><div>ššif ! $R{ $F[0] } or $R{ $F[0] }{date} le $date;</div><div><br></div><div>}{</div>
<div><br></div><div>print $R{$_}{file} for reverse sort keys %R;</div><div><br></div><div></code></div><div>ëÏÍÍÅÎÔÁÒÉÉ ÐÒÏÓÔÁ×ÉÔØ ÐÏ ×ËÕÓÕ</div><div><br></div><div>÷ÙÚÏך<br>perl <a href="http://script.pl">script.pl</a> confile</div>
<div><br></div><div><br></div><div><br></div><br><div class="gmail_quote">2011/9/9 Nikolay Mishin <span dir="ltr"><<a href="mailto:mi@ya.ru">mi@ya.ru</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hi Moscow PM<br>
<br>
ðÏÍÏÇÉÔÅ , ÅÓÔØ ÐÒÏÇÒÁÍÍÁ, ÓÏÒÔÉÒÕÀÝÁÑ ÆÁÊÌÙ:<br>
ÍÏÖÎÏ ÌÉ ÅÅ ÐÅÒÅÐÉÓÁÔØ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ Schwartzian Transform<br>
ÔÉÐÁ @new = map { $_->[0] }<br>
 šsort { $b->[1] <=> $a->[1] || $a->[2] cmp $b->[2] }<br>
 šmap { [ $_, /=(\d+)/, uc($_) ] } @old;<br>
Õ ÍÅÎÑ ÞÔÏ-ÔÏ ÎÅ ÐÏÌÕÞÁÅÔÓÑ<br>
#ÓÏÄÅÒÖÉÍÏÅ confile<br>
# N1089767N_7_SWOPT_03-Jul-2011_78919186.xml<br>
# N1089767N_7_SWOPT_25-Jun-2011_72745892.xml<br>
# N1089772L_9_SWOPT_03-Jul-2011_78979055.xml<br>
# N1089772L_9_SWOPT_20-Jul-2011_69380887.xml<br>
# N1089772L_9_SWOPT_29-Jun-2011_74754662.xml<br>
open( CONSULTS, "confile" );<br>
@scons = <CONSULTS>;<br>
close CONSULTS;<br>
my %is_trade_id_unique;<br>
foreach ( reverse sort consort @scons ) {<br>
 š šchomp;<br>
 š šif ( $_ =~ m/(\w+_\d+_\w+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i ) {<br>
 š š š šmy ( $trade_id, $date, $month, $row_num ) = ( $1, $2, $3, $4 );<br>
 š š š šif ( !$is_trade_id_unique{$trade_id} ) {<br>
 š š š š š šprint $_. "\n";<br>
 š š š š š š$is_trade_id_unique{$trade_id} = 1;<br>
 š š š š}<br>
 š š}<br>
<br>
}<br>
<br>
#N1089767N_7_SWOPT_03-Jul-2011_78919186.xml<br>
sub consort {<br>
 š š$aa = $a;<br>
 š š$bb = $b;<br>
<br>
 š# save our variables because our sort routine affects them. šIf I "chomp $a"<br>
 š# that will actually change the line seen in the foreach loop that calls this.<br>
 š šchomp $aa;<br>
 š šchomp $bb;<br>
<br>
 š š$aa =~ s/^ š*//;<br>
 š š$bb =~ s/^ š*//;<br>
<br>
 š šmy %months = (<br>
 š š š šFY š=> 0,<br>
 š š š šJan => 1,<br>
 š š š šFeb => 2,<br>
 š š š šMar => 3,<br>
 š š š šApr => 4,<br>
 š š š šMay => 5,<br>
 š š š šJun => 6,<br>
 š š š šJul => 7,<br>
 š š š šAug => 8,<br>
 š š š šSep => 9,<br>
 š š š šOct => 10,<br>
 š š š šNov => 11,<br>
 š š š šDec => 12,<br>
 š š);<br>
<br>
 š šmy ( $trade_id, š$date, š$month, š$row_num );<br>
 š šmy ( $btrade_id, $bdate, $bmonth, $brow_num );<br>
 š šif ( $aa =~ m/(\w+_\d+_\w+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i ) {<br>
 š š š š( $trade_id, $date, $month, $row_num ) = ( $1, $2, $months{$3}, $4 );<br>
 š š}<br>
 š šif ( $bb =~ m/(\w+_\d+_\w+)_(\d+)-([A-Za-z]{3})-2011_(\d+)[.]xml/i ) {<br>
 š š š š( $btrade_id, $bdate, $bmonth, $brow_num ) =<br>
 š š š š š( $1, $2, $months{$3}, $4 );<br>
 š š}<br>
<br>
 š š š š $trade_id cmp $btrade_id<br>
 š š š|| $month <=> $bmonth<br>
 š š š|| $date <=> $bdate<br>
 š š š|| $row_num <=> $brow_num;<br>
<br>
}<br>
<font color="#888888"><br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
</font></blockquote></div><br><br clear="all"><div><br></div>-- <br>Alexander<br>
</div>