����������� ������������ ��� GNU Awk

Arnold D. Robbins

������� ������� �. �.

����������

���������� B. ��������� gawk

��� ���������� �������� ���������� ��� ��������� gawk �� ��������� ����������, ������� �������������� ��������������. ������ ������������ ������������ Unix (� ������������ GNU), ����� ���� ����������� � ������ ��������. ���� `ACKNOWLEDGMENT' � �������� gawk ����������� ����������� ������ ���, ������������� ����� ��������. ��� ����� ������� � ������� B.7 [������������ ���������� � ������], ���. 292.

B.1 ��������������� gawk

 

� ���� ������� ������� �����������, ��� �������� �������� gawk, ��� �������, � ��� ���������� � ��������� ������ � ������������.

B.1.1 ��������� �������� gawk

 

������� ��� ���� ��������� ������������ ����������� GNU.
1. ���������� ��� � ����-������, ��� ��� ��� �����.

2. ����� �������� gawk ��������������� � Free Software Foundation. �������� ������������ ����������� �������� ��� Unix, MS-DOS � VMS, �� ����� � CD-ROM. ����� �����:

Free Software Foundation 59 Temple Place--Suite 330 Boston, MA 02111-1307 USA Phone: +1-617-542-5942 Fax (including Japan): +1-617-542-2652 E-mail: gnu@gnu.org �������� �� FSF ��������������� ������������ �� ��������� foundation � ������������ ���������� ������������ �����������.

3. ����� �������� gawk , ��������� ��������� ftp � Internet host gnudist.gnu.org, � �������� `/gnu/gawk'. ��� ������ ������ ������ ftp, ������ ����� �������� ����������� ����������� GNU. ���� ���� �������� ��� "site:directory" , �� ������� ���������, ��� ����������� ����������� GNU. ����� ������������ �����, ������� ������������� ������ � ���.

����:

cair-archive.kaist.ac.kr:/pub/gnu ftp.cs.titech.ac.jp ftp.nectec.or.th: /pub/mirrors/gnu utsun.s.u-tokyo.ac.jp:/ftpsync/prep

���������:

archie.au:/gnu (archie.oz or archie.oz.au for ACSnet)

������:

ftp.sun.ac.za:/pub/gnu Middle East: ftp.technion.ac.il:/pub/unsupported/gnu Europe: archive.eu.net ftp.denet.dk ftp.eunet.ch ftp.funet.fi:/pub/gnu ftp.ieunet.ie:pub/gnu ftp.informatik.rwth-aachen.de:/pub/gnu ftp.informatik.tu-muenchen.de ftp.luth.se:/pub/unix/gnu ftp.mcc.ac.uk ftp.stacken.kth.se ftp.sunet.se:/pub/gnu ftp.univ-lyon1.fr:pub/gnu ftp.win.tue.nl:/pub/gnu irisa.irisa.fr:/pub/gnu isy.liu.se nic.switch.ch:/mirror/gnu src.doc.ic.ac.uk:/gnu unix.hensa.ac.uk:/pub/uunet/systems/gnu

����� �������:

ftp.inf.utfsm.cl:/pub/gnu ftp.unicamp.br:/pub/gnu

�������� ������:

ftp.cs.ubc.ca:/mirror2/gnu USA: col.hp.com:/mirrors/gnu f.ms.uky.edu:/pub3/gnu ftp.cc.gatech.edu:/pub/gnu ftp.cs.columbia.edu:/archives/gnu/prep ftp.digex.net:/pub/gnu ftp.hawaii.edu:/mirrors/gnu ftp.kpc.com:/pub/mirror/gnu

USA (�����������):

ftp.uu.net:/systems/gnu gatekeeper.dec.com:/pub/GNU jaguar.utah.edu:/gnustuff labrea.stanford.edu mrcnext.cso.uiuc.edu:/pub/gnu vixen.cso.uiuc.edu:/gnu wuarchive.wustl.edu:/systems/gnu

B.1.2 ���������� ��������

 

gawk ������������ � tar file, ������������ �� GNU Zip ���������, gzip. ���� �� ������ �������� (��������. `gawk-3.0.4.tar.gz'), ������� ���������� ���� �� gzip � ����� ����������� tar ��� ���������� ��������. �� ������ ��� ��������� �������� gawk ������������ ��������� ��������:

# � ������� V, ��������  'o' � ������� tar
gzip -d -c gawk-3.0.4.tar.gz -- tar -xvpf

��� ������� ������� � ������ `gawk-3.0.4' � ������� ��������. ��� ����� � ��������� ����� ����� `gawk-V.R.n.tar.gz'. V ������������ ������� ������ gawk, R �������� ������� ������ ������ V, � n �������� ������� �������������, � ��� ������, ��� ����� ������ � ������� ����������. ������� ������� ������������� ���� 4, �� � ��������� ��������� �� �������� ������, ������ � ������������� ����� ������� �������. (�������, ��� ������ �������, ������� ��� ������ 90, �������� "beta," ��� non-production software; ��� �� ������� ������������ ������ ��������, ���� ������ �� �� ������ ��������������������.)

���� ��������� �� �� ������� Unix, ��� ���������� �������������� �������� ��� ��������� � ���������� �������� gawk. �� ������ �������������������� �� ����� ������ � ���������� ��������.

B.1.3 ���������� �������� gawk

 

�������� gawk ����� ��� �������� ��-������, ������ � �������������, ����������� � �����, ����������� � ��������� ������������ (��. ������ B.2 [���������� � ��������� �� ��������� Unix], ���. 284), � ��������� ������������, ����������� � ���������, ��-Unix, ������������ ��������. � ���������, � ��� ������: ��������� `.c', `.y' � `.h' ����� ��� ����� ���������� �������� �������� ���� gawk.

`README' `README.d/README.*'
������������ �����: `README' ��� gawk ��� Unix, � ��������� ��� ��������� ���������� ���������� � ������������ �����������.

`INSTALL' ���� � ������� �������� ������������ � ���������.

`PORTS' ������ ������, �� ������� gawk ��������� � �� ������� ������� ������ ������� ������.

`ACKNOWLEDGMENT' ������ ���, ��������� ������������ ����� � ���� ��� ������������.

`ChangeLog' ��������� ������ ���������, ��������� � �������� ���� ��� ����������� ������ ��� ��� �������������������.

`NEWS' ������ ��������� � gawk �� ������� ���������� ������� ��� �����������.

`COPYING' ����� ��������� �������� GNU.

`FUTURES' �������� �������� ������� �/��� ���������, �������������� � ������� ��������, � ���������� ��������� ����� ���������, ��������� � �� ����������.

`LIMITATIONS' ������ ��������, ������� ������������ ������������������ gawk. ����������� �� ������� �� ���������� � �������� ������������ �������, � �� �� ����� gawk.

`POSIX.STD' �������� ��������, � ������� �������� POSIX ��� awk �������, � ��, ��� gawk ������ ��� ��������.

`PROBLEMS' ����, ����������� ������������ �������� � ������� �������.

`doc/awkforai.txt' �������� ������, ����������, ������ gawk ���� ������� ���� ��� ���������������� AI (�������������� ����������).

`doc/README.card' `doc/ad.block' `doc/awkcard.in' `doc/cardfonts' `doc/colors' `doc/macros' `doc/no.colors' `doc/setter.outline'

�������� ��� troff ��� ����-������� ���������� �����. ����� ������ troff, ����� ��� GNU Troff (groff), ���������� ��� ��������� ������� ������. ��. ���� `README.card' � ������������, ���� � ��� ������ ������ troff.

`doc/gawk.1' �������� ��� troff ��� manual page � ��������� gawk. ������������ ��� �������� ������������� Unix.

`doc/gawk.texi' �������� ���� Texinfo ��� ��������� �����. �� ������ ���� ��������� � TEX ��� ��������� ��������� ���������, � � makeinfo ��� ��������� ��������������� ����� Info.

`doc/gawk.info' ��������������� ���� Info ��� ���� �����.

`doc/igawk.1' �������� troff ��� manual page, ������������ ��������� igawk, �������������� � ������� 16.2.9 [������� ������ ������������ ������������ �������], ���. 244.

`doc/Makefile.in' ������� ����, ������������ � ���������������� �������� ��� ��������� ������������ `Makefile' ��� �������� ������������.

`Makefile.in' `acconfig.h' `aclocal.m4' `configh.in' `configure.in' `configure' `custom.h' `missing/*' ��� ����� � ���������� ������������ ��� ������������ gawk ��� ��������� ������ Unix. ��� ������� �������� � ������� B.2 [���������� � ��������� gawk � Unix], ���. 284.

`awklib/extract.awk' `awklib/Makefile.in' ������� `awklib' �������� ����� `extract.awk' (��. ������ 16.2.7 [���������� �������� �� Texinfo Source Files], ���. 238), ������� ����� �������������� ��� ���������� �������� �������� �� Texinfo source file ��� ��������� �����, � ����� `Makefile.in' file, ������� �������� ���������������� ���������� ��� ��������� `Makefile'. ��� ����� �������� ���������� gawk, ������������ ������� �� ����� 15 [���������� ������� awk], ���. 169, � ��������� igawk �� ������� 16.2.9 [������� ������ ������������� ���������� �������], ���. 244, ��������� � ������� ���� ��� �������������. ��� ����������� ��� ����� �������� ���������.

`atari/*' �����, ����������� ��� ���������� gawk �� Atari ST. ��. ������ � ������� B.5 [��������� gawk �� Atari ST], ���. 289.

`pc/*' ��� ����� ���������� ��� ���������� gawk ��� MS-DOS � OS/2. ��. ������ � ������� B.4 [MS-DOS � OS/2, ��������� � ����������], ���. 288.

`vms/*' �����, ������ ��� ���������� gawk ��� VMS. ��. ����������� � ������� B.3 [��� ������������� � ������������� gawk �� VMS], ���. 285.

`test/*' ����� ������ ��� gawk. ����� ������������ `make check' �� �������� ������ �������� gawk ��� ������� ����� ������ gawk �� ������ ������. ���� gawk ������� �������� `make check', �� �� ������ ���� ������� � ���������� ��� ��������.

B.2 ���������� � ��������� gawk �� Unix

 

������ ��� ���������� � ��������� gawk ���������� ������ ��� �������. ������, ���� ������������ ��������� �������, ����� ��������� ����������� ��� ����� ���������������� gawk ��� ����� �������.

B.2.1 ���������� gawk ��� Unix

 

����� ���������� �������� gawk, ������� ������� �� `gawk-3.0.4'. ������� ����������� �������� GNU, gawk ��������������� ������������� ��� ������� Unix ������ ��������� ������������. ��� ��������� ������������ �������� �������� Bourne, ������� ��� ������������ ����������� GNU autoconf. (����������� ����������� autoconf ��������� ������� � Autoconf--Generating Automatic Configuration Scripts, ������� �������� � Free Software Foundation.)

����� ��������������� gawk, ������ ��������� sh ./configure. ��� ���� `Makefile' � `config.h', ����������� � ����� �������. ���� `config.h' ��������� ��������� ����� � ����� �������. �� ������ �������� ��������������� `Makefile' ��� ��������� ���������� CFLAGS, ������� ��������� ����������� ��������� ������, ������������� ����������� C� (������ ��� ������ ����������� ��� ����������� ��� �������).

�� ����� ������ �������� ���� ����������� �������� ��� ����������� make-����������, ����� ��� CC � CFLAGS, � ��������� ������ ��� ���������� ������������:

CC=cc CFLAGS=-g sh ./configure
��. ������ � ����� `INSTALL' �� �������� gawk.

����� ���������� ������������ � ���������� �������������� `Makefile', ������� ������� make, � ������ ����� ����� �� �������� ������� ������ gawk. ��� � ���! (���� ��� ���� �� ��������, ������� ���������� ��������� �� ����������; ��. ������ B.7 [��������� � ���������� � �������], ���. 292.)

B.2.2 ������� ������������

 

(���� ������ ������������ ������� ������ ���� �� ������ ���-�� �� ������������ ����� C� � ������������ ������� Unix.)

�������� ��� ��� gawk ������ ��������� �������������� ���������� ���������� ���, ��� ��� ��������. ��� ������, ��� gawk ���������� ������������ ������������, ��������������� ��������� ANSI C � ��������� POSIX ��� ���������� c ������������ ��������. ��� ������������� ����������� ANSI C, ��������� ������� ������������ ��� ������ � ��������� �������� �� ����� ����������.

������ ������� Unix �� ������������ ���� ���������� �� ANSI �� POSIX. `���������' ����������� � �������� gawk �������� ���������� ������ ��� �����������, ������� �������� �������� ����� �������.

���� `config.h', ������� ��������� ���������� ������������, �������� �����������, ����������� �������� ���������� ������������ �������, � ������� �� ��������� �������������� gawk. � ���� ����� ������� ��� �����: ��� �������� ����� �������� � ����� ���� ��������� ��������, ��� (����������������) ����������� ������� ���������� �������� � ����� ����������� C�, � ����� ������ ��������� ����� � ����� �������� Unix. ��������, ����� �� ��������� �������� st.blksize � ����������� ���������. � ���� ������ `HAVE.ST.BLKSIZE' ����� ��������������.

��������, ��� ��� C�-���������� ������ � ������������. ��� ����� ��������� ��� ��-�� �������� �� ������ ��� �� ����������� ������������ �������. ����� ������ ���, ����� ��������������� ���� `custom.h'. ����������� `#ifdef', ������� �������� ��� ����� �������, � ���� #define ��� ���������, ������� ������ ���������� ������������, �� �� ������� �����, ��� #undef ��� ���������, ������� ������������ ����������, ���� � �� ������ ���� ��� ������. `custom.h' ������������� ���������� ����������� `config.h'.

����� ��������, ��� ��������� ������������, ����������� ����������� autoconf, �� ����� �������� �� ����� ������� � �����-�� ���� �����. ���� � ��� �����-�� ������������, ���� `configure.in' ���� ���� ��� autoconf. �� ������ �������� ���� ���� � ������������� ����� ������ ������������, ������� ����� �������� �� ����� �������. ��. ������ B.7 [��������� � ���������� � �������], ���. 292, � ��� ��� �������� � �������� ��� ���������������� gawk. ��� �� ����� �������� ����� ������������ ��� ������� ����������� � `configure.in' �/��� `custom.h'.

B.3 ��� ������������� � ������������� gawk �� VMS

 

� ���� ������� ����������� ���������� � ��������� gawk ��� VMS.

B.3.1 ���������� gawk �� VMS

 

��� ���������� gawk ��� VMS, ������� ��������� ��������� DCL, ������� ������ ��� ����������� ������� CC � LINK, � ����� ������� `Makefile'��� ������������� � �������� MMS. �� ��������� �������� �������� ���

$ @[.VMS]VMSBUILD.COM
���
$ MMS/DESCRIPTION=[.VMS]DESCRIP.MMS GAWK

� ����������� �� ����, ����� C�-���������� ������������, �������� ������ �� ������� ���������� � �������:

VAX C V3.x
����������� ��� `vmsbuild.com' ��� `descrip.mms' ��� ����. ��� ���������� CC/OPTIMIZE=NOLINE, ������� ������������ ��� ������ 3.0.

VAX C V2.x
�� ������ ����� ������ 2.3 ��� 2.4; ����� ������ �� ����� ��������. �������������� ��� `vmsbuild.com' ��� `descrip.mms' � ������������ � ������������� � ���. ��� `vmsbuild.com' ��� �������� �������� ���� ������������� `!'. ����� �������������� `config.h' (��� ����� ����� `[.config]vms-conf.h') � ��������������� ��� ������� ��� ������ `#define ..STDC.. 0' � `#define VAXC.BUILTINS' ����� �����.

GNU C
�������������� `vmsbuild.com' ��� `descrip.mms'; ��������� ������� �� ��������� ��� VAX C V2.x, �� ����� ��� �� �����. `config.h' � ���������� �� ���������.

DEC C
�������������� `vmsbuild.com' ��� `descrip.mms' �������� ������������ � ���. `config.h' �� ��������� � ����������.

gawk ������������ ��� VAX/VMS 5.5-1 � �������������� VAX C V3.2, GNU C 1.40 � 2.3. ��� ������ �������� ��� ��������� ��� VMS V4.6 � ��������� ������.

B.3.2 ��������� gawk �� VMS

 

��� ��������� gawk ����� ������ "�����������" �������, ������� ���� ������ DCL � ���������� � ����� �������.

 ��������:
 
  $ GAWK :== $disk1:[gnubin]GAWK

(���������� ����������� ������������ gawk.exe ������ `$disk1:[gnubin]'.) ������ ������ ���� ������� � `login.com' ������ ������������, ��� ����� ��������� gawk, ��� ��� �� ����� ��������� ������ ���, ����� ������������ ������ � �������. ��� ������������, ������ ����� ���� ������� � ��������� ��������� `sylogin.com', ������� ����� ��������� ���� ������������� ��������� gawk.

��� ������� ���� � help ����� ���� �������� � VMS help-����������: $ LIBRARY/HELP SYS$HELP:HELPLIB [.VMS]GAWK.HLP (�����, ���� ������, ���������� ��������������� �� ���� ���������� help ������ ����������� ���������� VMS `HELPLIB'.) ����� �������� ������ help $ HELP GAWK ������ ���������� � � ���������� gawk � � ����������� ����� awk.

���������� ��� `AWK.LIBRARY' ����� ���������� ������������ �� ��������� ����� ��� ����������� ������ awk. ��� ��������� `-f' , ���� ��������� ��� ����� �� �������� ���������� �� ���������� ��� ���� � �������, gawk ����� ������� ������ ��� � ������� ��������, ����� � ��������, ��������� ����������� `AWK.LIBRARY', ���� ���� �� ������. ���� ����� ������ � ����� ��������� ���� ��� ��� �� ����� ������, �� gawk �������� ��������� `.awk' � ����� ����� � �������� ��� �����. ���� `AWK.LIBRARY' �� ����������, ��� ����� ������ �������� �����������.

B.3.3 ���������� gawk �� VMS

 

����� � ��������� ������ � ���������� � �������� ����������� ���������� �� VMS, ��� ��� ������� �� ��������� ����� ��� �� ������ ���������� ������ ���� ������� �������� � ����� ��� ����� ����������� ���������.

��� ��������� ����������� ������:

$ gawk -- "BEGIN -print ""Hello, World!"""""
$ gawk -"W" version ! could also be -"W version" or "-W version"

�������, ��� ������-����������� � ��������� ������ ������ ���� � ��������. VMS-������� gawk �������� ��������� � ����� DCL � ���������� � ������������� ���������� � ����� shell (��. ����������� � help). ���� �������� ������ �� �������� ������� ��������� ������ ���� ��, ��� ���� ������� ������ ���� �������� (��� � ������������ ������ � ����������� ���� ���������), �� ������� ���������� �������������. ����� ������ ���, ��������� ������ �������������� ������ `--' , ����� ������� ����� Unix ������ ������� �� DCL. ���� ������������ �����-������ ������ ��������� ���� dash (��� ������� ���������, ����� ��� ����� � ������� ��� ���������), �� ��������������� ��� � `--' ����� ��������.

�� ��������� ���� ������ ����������� ������, ��������� ���������� `-f', ���� "SYS$DISK:[],AWK.LIBRARY:". ���������� ��� `AWKPATH' ����� ������������ ��� ��� ���������. ������ `AWKPATH' ���� ����������� �������� ������ ���������. ��� ����������� ��� �������� ���� ����� � �������, ����� ���������� ������������ �������, � �� ����� ���������� ������ ������ RMS.

B.3.4 ���������� � ������������� gawk �� VMS POSIX

 

����������� ����������� ���� ����������, ���� `vms/gawk.hlp' ������ ���������� ��������� � ���������� help. �������� ������ ������ ���� ����������� � �������� ������� container ������ ������� �������� ������� VMS. ���������, ��� �������� `configure' � `vms/posix-cc.sh' ���������; ����������� `chmod +x' �� ���, ���� �����. ����� ��������� ��� ��������� �������:

psx? CC=vms/posix-cc.sh configure psx? make CC=c89 gawk

������ ������� �������� ����� `config.h' � `Makefile' �� ����������, ��������� �������� ��� �������� C�-����������� � ����������� ������������. ������ ������� ����������� � ����������� gawk, ��������� ��������������� ���������� ��; ����������� ��� ��������������� �� make � ���, ��� �� �� ����� �������������� CC. ������������ ��������� ����� ����� ������� ��� ����������, �� ��� ������������ ��������������� �������� ����� � �������� ����������. ��� ���� ��������� � VAX/VMS V6.2, VMS POSIX V2.0 � DEC C V5.2.

���� ���������, gawk ����� �������� ������� ���� ������ �������� ��������. � ������� �� ������ ������������ �� VMS gawk, ����� �� ����� ����������� ����������� � ��������� ������ � ��������� VMS POSIX.