next up previous index
Következő: 15.50.7.3 Beépített változók Fel: 15.50.7 VÁLTOZÓK, REKORDOK ÉS Előző: 15.50.7.1 Rekordok   Index

15.50.7.2 Mezők

Amint beolvassa az egyes rekordokat, a gawk mezőkre bontja azokat, az FS változó értékét használva mezőelválasztóként. Ha FS egyetlan karakter, ez a karakter választja el a mezőket. Ha FS üres sztring, akkor minden egyes karakter külön mező lesz. Egyébként a program FS-t, mint reguláris kifejezést kezeli. Abban a speciális esetben, amikor FS egyetlen space, a mezőket space és/vagy tab és/vagy újsor karakterek választják el. (De lásd lejjebb a -posix opció tárgyalását). Fontos, hogy az IGNORECASE értéke (lásd lejjebb) szintén befolyásolja, hogy a mezők miként választódnak szét, amikor az FS reguláris kifejezés; és hogy hogyan szeparálódnak a rekordok, amikor az RS reguláris kifejezés. Ha a FIELDWIDTHS változó értékeként space-ekkel elválasztott számlista van megadva, a gawk fix szélességű mezőket vár,és a rekordot az adott szélességekre darabolja. Az FS értékét figyelmen kívül hagyja. FS-nek új értéket adva a FIELDWIDTHS használata megszüntethető, és visszaállítható az alapértelmezett működés. A bemeneti rekord minden mezőjére pozíciója alapján hivatkozhatunk ( $1, $2,stb.) $0 az egész rekord. A mező értéke meg is adható. A mezőhivatkozásnak nem szükséges konstansnak lennie:
n=5
print $n
kiírja a bemeneti rekord ötödik mezőjét. Az NF változó a bemeneti rekord mezőinek számát tartalmazza. A nemlétező mezőkre történő hivatkozások (azaz $NF-nél nagyobb indexű mezők) üres sztringet eredményeznek. Azonban a nemlétező mezőnek történő értékadás (pl. $(NF+2) = 5) megnöveli NF értékét, minden közbeeső mezőt üres sztringértékkel hoz létre, és $0 értékét újra kiértékelteti úgy, hogy a mezőelválasztó OFS értéke lesz. A negatív mezőhivatkozások fatális hibát okoznak. NF dekrementálása az új érték utáni mezők értékének elvesztésével jár, valamint $0 értékének újraszámítását okozza, OFS értékének megfelelő mezőelválasztással.


next up previous index
Következő: 15.50.7.3 Beépített változók Fel: 15.50.7 VÁLTOZÓK, REKORDOK ÉS Előző: 15.50.7.1 Rekordok   Index

1999-09-17