Hatékony AWK programozás

A GNU Awk felhasználói kézikönyve

1.0.4 kiadás

1999 április

Arnold D. Robbins
fordította Iványi Péter


(1)

Ezek a parancsok elérhetôk POSIX kompatíbilis rendszereken, illetve hagyományos Unix rendszereken. Ha valamilyen más operációs rendszert használsz, akkor is tisztában kell lenned az I/O átirányítás fogalmával és csövek (pipe) használatával.

(2)

Ezek a rendszerek a gawk implementációt használják leggyakrabban!

(3)

Az `#!' mechanizmus működik Linux rendszereken, azokon a Unix rendszereken amelyek a Berkeley Unix, System V Release 4 családba tartoznak és néhány System V Release 3 rendszeren is.

(4)

A `#!' jellel kezdôdô sor tartalmazza az interpreter teljes nevét és egy opciónális argumentumot az interpreter számára. Az operációs rendszer futtatja az interpretert a file-ban megadott argumentummal és az elindított programnak megadott teljes argumentum listával. Az elsô argumentum a listában az awk program neve. A további argumentumok vagy awk opciók vagy adat file-ok vagy mindkettô.

(5)

Azért erre is van lehetôség:

	IGNORECASE=1 && /foObAr/ { .... }
	IGNORECASE=0 || /foobar/ { .... }

de ez nagyon csúnya programozási megoldás, ezért kerülni kell.

(6)

POSIX awk-ban az új sor karakter nem mezôelválasztó

(7)

A sed segédprogram egy "karakter folyam (stream) szerkesztô" program. Viselkedése szintén POSIX szabványban definiált.

(8)

A számok belsô reprezentációja double. Ha nem tudod, hogy ez mit jelent ne aggódj; ez nem olyan fontos.

(9)

POSIX awk-ban az új sor karakter nem mezôelválasztó.

(10)

A Unix awk kezdeti implementációi a FILENAME értékét kezdetben "-" szövegre állították. Ez a viselkedés hibás, így nem szabad abban bízni, hogy ez lesz a változó kezdeti értéke.

(11)

A számítógépek által generált véletlen számok nem igazán véletlenszerűek. Technikai kifejezéssel élve, ezeket "pszeudo-véletlen" számoknak nevezik. Ez azt jelenti, hogy bár a sorozatban az egymás után következô számok véletlenszerűek, de valójában ugyanazt a sorozatot többször tudod generálni.

(12)

Ez biztos, hogy nem volt szándékos.

(13)

Jelenleg, 1999 április, végsô jóváhagyás elôtt áll és remélhetôleg valamikor 1999-ben megjelenik az új változat.

(14)

Egy program interaktív, ha a szabványos kimenet a terminál eszközhöz van kapcsolva.

(15)

A Föld szabálytalan forgása miatt és hogy ma már több tizedes pontossággal tudjuk az idôt mérni, elôfordulhat, hogy az IERS elrendel egy szökômásodpercet. Ezért alkalmanként a másodperc értéke 60 is lehet.

(16)

Ez azért van, mert az ANSI C az strftime C verziójának a viselkedését is így definiálja és a gawk a rendszer által megadott strftime függvényt fogja használni, ha létezik. Lényegében vagy megjelenik módosítás nélkül vagy nem fog szerepelni a szövegben.

(17)

Ha az egészbôl semmit nem értesz, ne aggódj, nem olyan fontos, azért kerültek bele a programba, hogy könnyebben lehessen a helyi körülményekhez igazítani a programot.

(18)

Not recommended.

(19)

Your version of gawk may use a directory that is different than `/usr/local/share/awk'; it will depend upon how gawk was built and installed. The actual directory will be the value of `$(datadir)' generated when gawk was configured. You probably don't need to worry about this though.

(20)

Some implementations of awk do not allow you to execute next from within a function body. Some other work-around will be necessary if you use such a version.

(21)

ASCII has been extended in many countries to use the values from 128 to 255 for country-specific characters. If your system uses these extensions, you can simplify _ord_init to simply loop from zero to 255.

(22)

This is the Epoch on POSIX systems. It may be different on other systems.

(23)

Examine the code in section Noting Data File Boundaries. Why must wc use a separate lines variable, instead of using the value of FNR in endfile?

(24)

On older, non-POSIX systems, tr often does not require that the lists be enclosed in square brackets and quoted. This is a feature.

(25)

This program was written before gawk acquired the ability to split each character in a string into separate array elements. How might this ability simplify the program?

(26)

"Real world" is defined as "a program actually used to get something done."

(27)

On some very old versions of awk, the test `getline junk < t' can loop forever if the file exists but is empty. Caveat Emptor.

(28)

The path may use a directory other than `/usr/local/share/awk', depending upon how gawk was built and installed.

(29)

In POSIX awk, newline does not separate fields.


This document was generated on 9 May 2000 using texi2html 1.56k.