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