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 - [email protected]
http://mlf2.linux.rulez.org/mailman/listinfo/linux