in reply to Sort rows in a csv file based on a date column
#!/usr/bin/perl use strict; use Text::CSV; my $old_string; my $csv = Text::CSV->new(); while ( my $line = <DATA> ) { $old_string = $old_string . join( " ", $csv->fields() ) . "\n" if ( $csv->parse( $line ) ); } my @new_string = map { $_->[0] } sort { $a->[1] cmp $b->[1] } map { [$_, (split)[4]] } split( /\n/, $old_string ); # Recreating the CSV data. foreach my $i (@new_string) { my $j = join "\",\"", split( " ", $i); print "\"$j\" \n"; } __DATA__ "Task1,Task2",ABC,ABC,Mon 05/22/2009,mbm "Task3,Task4",XYZ,XYZ,Mon 05/20/2009,mbm "Task5,Task6",ABC,ABC,Mon 06/25/2009,mbm "Task7,Task8",ABC,ABC,Mon 03/28/2009,mbm
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Sort rows in a csv file based on a date column
by Anonymous Monk on Apr 17, 2009 at 16:55 UTC | |
by Corion (Patriarch) on Apr 17, 2009 at 17:01 UTC |