Felipe Sanchez escribió el 2009-09-08:

> cat data.txt | while read linea; do
>    eval $(echo $linea | awk '{print "MODULO=$(echo "$1," | cut -f2 -d-)";
>                               for (i=9; i <= NF; i++)
>                                  print "ERRORES[" i - 9 "]=" strtonum($i);}')
>
>    for disco in `seq 0 11`; do
>       if [ ${ERRORES[$disco]} !=  "0" ]; then
>          echo comando_extra $MODULO $disco ${ERRORES[$disco]}
>       fi
>    done
>
> done

UUOC, UUOE ;-)

¿Se permite Perl?

#!/usr/bin/perl
# Perl es *mucho* más rápido que awk. :-P

use warnings;
use strict;

my(@a);
my($i);

while (<>) {
    @a = split;
    for ($i=8; $i<20; $i++) {
        $a[$i] =~ s/\D//g; #¿Tienes realmente \0240 entre las columnas?
        if ($a[$i] != 0) {
            $a[0] =~ s/module-//;
            system("echo", "$a[0]", $i-8, "$a[$i]\n");
        }
    }           
}
-- 
bli

Responder a