Szervusztok!

Ezt a scriptet futtatom:

#!/bin/sh

fv()
{
echo $LC_ALL
awk -F '&' '{if($2 > 0) c=">"; if($2 == 0) c="=";
        if($2 < 0) c="<";
        printf "%f %s 0    %f\n", $2, c, $2}' <<!
&   5.3
&   5,3
!
}

export LC_ALL=C
fv

export LC_ALL=hu_HU
fv

A kimenet:

C
5.300000 > 0    5.300000
5.000000 < 0    5.000000
hu_HU
5,000000 < 0    5,000000
5,300000 > 0    5,300000

Azt értem, hogy angolul az 5,3-ból miért lesz 5.0. De hogy az 5.0 
miért negatív - na ez nem fér a fejembe. Ha Solarison futtatom a 
scriptet, akkor "awk: can't open & record number 2" hibaüzenet jön.

Az a vicc, hogy ha a fenti programban kijavítom a $2-t $1-re, és 
kihúzom az adatok előtti &-et, akkor ezt kapom:

C
5.300000 > 0    5.300000
5.000000 > 0    5.000000
hu_HU
5,000000 > 0    5,000000
5,300000 > 0    5,300000

Ezt még érteni is vélem, és ugyanezt kapom Solarison is.

Vagyis mindkét op. rendszerben az awk másképp kezeli az első és 
a második oszlopot.

Üdv:
        GyL

_________________________________________________
linux lista      -      linux@mlf.linux.rulez.org
http://mlf2.linux.rulez.org/mailman/listinfo/linux

válasz