Provided by: manpages-pl_4.26.0-1_all bug

NAZWA

       gawk - język wyszukiwania i przetwarzania wzorców

SKŁADNIA

       gawk [ opcje w stylu POSIX lub GNU ] -f plik-programu [ -- ] plik ...
       gawk [ opcje w stylu POSIX lub GNU ] [ -- ] tekst-programu plik ...

OPIS

       Gawk  jest implementacją GNU języka programowania AWK. Odpowiada on definicji tego języka z POSIX 1003.1.
       Wersja ta jest z kolei oparta na opisie z The AWK Programming Language, napisanym przez Aho, Kernighana i
       Weinbergera. Gawk udostępnia dodatkowe funkcje  z  bieżącej  wersji  awk  Briana  Kernighana  oraz  wiele
       rozszerzeń charakterystycznych dla GNU.

       Wiersz  poleceń  składa  się  z opcji dla gawk, tekstu programu (jeśli nie podano go poprzez opcję -f lub
       --include)  i wartości, które mają być udostępnione w predefiniowanych zmiennych ARGC i ARGV.

WSTĘP

       Niniejsza strona  podręcznika  jest  bardzo  zwięzła.  Wszystkie  szczegóły  opisano  w  GAWK:  Efektywne
       programowanie  w  AWK  i  należy  się  z  nim zapoznać aby poznać pełny opis danej funkcji. Tam, gdzie to
       możliwe, zamieszczone są odnośniki do wersji online tego podręcznika.

FORMAT OPCJI

       Opcje gawk mogą być zarówno tradycyjnymi POSIX-owymi jednoliterowymi opcjami, jak  i  długimi  opcjami  w
       stylu  GNU.  Opcje  POSIX-owe  zaczynają  się  pojedynczym  “-”,  a opcje GNU “--”.  Opcje w stylu GNU są
       udostępniane zarówno dla właściwości specyficznych dla GNU,  jak  i  dla  właściwości  POSIX-owych.  Inne
       implementacje AWK prawdopodobnie jednak będą przyjmować tylko tradycyjne, jednoliterowe opcje.

       Opcje  specyficzne  dla  gawk są używane zwykle w długiej postaci. Argumenty przekazywane długim opcjom w
       stylu GNU są łączone z opcją przy użyciu znaku =, bez dodatkowych spacji  lub  przekazywane  w  następnym
       argumencie wiersza poleceń (tj. bez znaku równości i po spacji).

       Oprócz tego, każda długa opcja ma odpowiadającą jej opcję krótką, dzięki czemu funkcjonalność danej opcji
       może być używana ze skryptów wykonywalnych #!.

OPCJE

       Gawk  akceptuje  następujące  opcje.  Najpierw podane są opcje standardowe, następnie opcje do rozszerzeń
       gawk, ułożone alfabetycznie według krótkiej opcji.

       -f plik-programu,
              --file plik-programu Odczytuje źródło programu AWK z pliku plik-programu, zamiast odczytywać go  z
              pierwszego argumentu wiersza poleceń. Można użyć wielu opcji -f. Pliki odczytywane za pomocą -f są
              traktowane w ten sposób, jak gdyby zaczynały się wyrażeniem @namespace "awk".

       -F fs, --field-separator  fs  Używa fs jako wejściowego separatora pola (wartość predefiniowanej zmiennej
              FS).

       -v var=val, --assign var=val
              Przyznaje zmiennej var wartość val. Robi to przed uruchomieniem programu. Takie wartości zmiennych
              są dostępne dla reguły BEGIN programu AWK.

       -b,    --characters-as-bytes Traktuje wszelkie dane wejściowe jako znaki  jednobajtowe.  Niniejszą  opcję
              przesłania opcja --posix.

       -c,    --traditional  Pracuje  w  trybie  zgodności.  W trybie tym, gawk zachowuje się identycznie z UNIX
              awk; nie jest rozpoznawane żadne ze specyficznych dla GNU rozszerzeń.  Postać  --traditional  jest
              preferowana.  Zobacz ROZSZERZENIA GNU, dla dalszych informacji.

       -C,    --copyright  Wypisuje  krótką  wersję informacji o prawach autorskich GNU na standardowe wyjście i
              pomyślnie kończy działanie.

       -d[plik], --dump-variables[=plik]
              Wypisuje do pliku  posortowaną  listę  zmiennych  globalnych,  ich  typów  i  końcowych  wartości.
              Domyślnym plikiem jest awkvars.out w katalogu bieżącym.

       -D[plik], --debug[=plik]
              Włącza   debugowanie  programów  AWK.  Domyślnie,  debuger  odczytuje  polecenia  interaktywnie  z
              klawiatury (standardowego wejścia). Opcjonalny argument plik  określa  plik  z  listą  poleceń  do
              debugera, w celu wykonania ich nieinteraktywnie.
              W  tym  trybie wykonania, gawk ładuje kod źródłowy AWK i czeka na polecenia debugowania. Gawk może
              debugować jedynie źródła programu AWK przekazane opcjami -f i --include. Debuger udokumentowano  w
              GAWK:             Efektywne             programowanie            w            AWK;            zob.
              https://www.gnu.org/software/gawk/manual/html_node/Debugger.html#Debugger.

       -e tekst-programu,
              --source tekst-programu Używa tekstu-programu jako kodu źródłowego AWK. Każdy argument  podany  za
              pomocą opcji -e jest traktowana tak, jak gdyby zaczynała się instrukcją @namespace "awk".

       -E plik, --exec plik
              Podobnie  jednak  do  -f, opcja ta jest przetwarzana na końcu. Powinna być używana w skryptach #!,
              szczególnie w przypadku aplikacji CGI, aby unikać przekazywania opcji lub kodu  źródłowego  (!)  w
              wierszu poleceń z URL-a. Opcja ta wyłącza przypisania zmiennych wiersza poleceń.

       -g,    --gen-pot Przegląda i analizuje program AWK program, i tworzy na standardowym wyjściu plik formatu
              GNU  .pot  (Portable  Object Template), zawierający wpisy dla wszystkich podlegających lokalizacji
              łańcuchów w programie. Sam program nie jest wykonywany.

       -h,    --help Wypisuje na standardowe wyjście krótkie podsumowanie dostępnych opcji. Zgodnie z GNU Coding
              Standards, te opcje powodują natychmiastowe, pomyślne zakończenie pracy.

       -i plik-do-włączenia, --include plik-do-włączenia
              Ładuje  bibliotekę  źródłową  awk.  Wyszukiwanie  biblioteki  ma  miejsce   za   pomocą   zmiennej
              środowiskowej  AWKPATH.  Jeśli  pierwotne  wyszukiwanie  zawiedzie,  kolejne  będzie  wykonane  po
              dołączeniu przyrostka .awk. Plik będzie załadowany jednokrotnie (tj. eliminowane są duplikaty),  a
              kod  nie tworzy źródła głównego programu. Pliki odczytywane za pomocą --include są traktowane tak,
              jak gdyby zaczynały się instrukcją @namespace "awk".

       -I,    --trace Wypisuje wewnętrzne nazwy kodów bajtowych w  trakcie  ich  wykonywania,  przy  działającym
              programie.  Ślad  jest  wypisywany na standardowe wyjście błędów. Każdy „kod operacji” („op code”)
              jest poprzedzany na wyjściu znakiem +.

       -l biblioteka,
              --load biblioteka Ładuje rozszerzenie gawk z biblioteki współdzielonej. Wyszukiwanie biblioteki ma
              miejsce za pomocą zmiennej  środowiskowej  AWKLIBPATH.  Jeśli  pierwotne  wyszukiwanie  zawiedzie,
              kolejne   będzie   wykonane   po   dołączeniu   domyślnego  przyrostka  (rozszerzenia)  biblioteki
              współdzielonej dla danej platformy. Oczekuje się, że  procedura  inicjalizacji  biblioteki  będzie
              miała nazwę dl_load().

       -L [wartość], --lint[=wartość]
              Zapewnia  ostrzeżenia  o  konstrukcjach,  które są wątpliwe lub nieprzenośne na inne implementacje
              AWK.      Lista      dopuszczalnych      wartości      jest       dostępna       pod       adresem
              https://www.gnu.org/software/gawk/manual/html_node/Options.html#Options.

       -M,    --bignum Wymusza korzystanie z arytmetyki liczb o dowolnej precyzji. Opcja ta nie odniesie skutku,
              jeśli  nie  skompilowano  gawk  z obsługą bibliotek GMP i MPFR GNU (w takim przypadku gawk wypisze
              ostrzeżenie).

              UWAGA: Funkcja ta istnieje warunkowo. Główny opiekun gawk się nie zajmuje, jednak robi to jeden  z
              członków  zespołu  deweloperskiego. Jeśli sytuacja ulegnie zmianie na niekorzyść, funkcja zostanie
              usunięta z gawk.

       -n,    --non-decimal-data Rozpoznaje wartości ósemkowe i szesnastkowe w danych  wejściowych.   Opcji  tej
              należy używać ze szczególną ostrożnością!

       -N,    --use-lc-numeric  Zmusza gawk do korzystania ze znaku dziesiętnego z locale (ustawień językowych),
              przy przetwarzaniu danych wejściowych.

       -o[plik], --pretty-print[=plik]
              Wypisuje wersję programu sformatowaną za pomocą pretty-print  do  pliku.  Domyślnym  plikiem  jest
              awkprof.out w bieżącym katalogu. Opcja ta wymusza --no-optimize.

       -O,    --optimize  Włącza  domyślne  optymalizacje  gawka wobec wewnętrznej reprezentacji programu. Opcja
              domyślnie włączona.

       -p[plik-prof], --profile[=plik-prof]
              Rozpoczyna sesję profilowania  i  wysyła  dane  profilowania  do  pliku-prof.  Domyślnie  jest  to
              awkprof.out  w  bieżącym  katalogu.  Profil  zawiera liczbę wykonań każdej instrukcji programu (na
              lewym marginesie) oraz liczbę wywołań funkcji dla każdej funkcji użytkownika. W  tym  trybie  gawk
              działa wolniej. Opcja wymusza --no-optimize.

       -P,    --posix Włącza tryb zgodności i wyłącza wiele podstawowych rozszerzeń.

       -r,    --re-interval  Włącza  użycie  wyrażeń przedziałowych (interval expressions) w dopasowaniu wyrażeń
              regularnych. Wyrażenia przedziałowe są domyślnie włączone, a opcja  ta  pozostaje  ze  względu  na
              kompatybilność wsteczną.

       -s,    --no-optimize Wyłącza domyślne optymalizacje gawka wobec wewnętrznej reprezentacji programu.

       -S,    --sandbox Uruchamia gawk w trybie piaskownicy, wyłączając funkcję system(), przekierowanie wejścia
              za  pomocą  getline,  przekierowania  wyjścia  za  pomocą print i printf oraz ładowanie rozszerzeń
              dynamicznych. Wykonywanie poleceń (poprzez potoki) również jest wyłączone.

       -t,    --lint-old Daje ostrzeżenia o konstrukcjach, które nieprzenośne na pierwotną wersję UNIX awk.

       -V,    --version Wypisuje na standardowe  wyjście  informacje  o  danej  kopii  programu  gawk.  Jest  to
              przydatne   przy   zgłaszaniu   błędów.   Zgodnie  z  GNU  Coding  Standards,  te  opcje  powodują
              natychmiastowe, pomyślne zakończenie pracy.

       --     Sygnalizuje koniec opcji. Dzięki  temu  następne  argumenty  programu  AWK  mogą  rozpoczynać  się
              myślnikiem „-”. [Na przykład rozpoczynające się myślnikiem nazwy plików].

       W  trybie  zgodności  wszelkie  inne opcje są zaznaczane jako niepoprawne, lecz poza tym są ignorowane. W
       normalnym trybie działania, jeśli dostarczono tekst programu AWK, nieznane opcje  są  mu  przekazywane  w
       tablicy ARGV, aby mógł je sobie sam przetworzyć.

       Ze  względu  na kompatybilność z POSIX, można skorzystać z opcji -W, po której należy podać nazwę długiej
       opcji.

WYWOŁANIE PROGRAMU AWK

       Program AWK składa się z sekwencji opcjonalnych  dyrektyw,  instrukcji  wzorzec-akcja  oraz  opcjonalnych
       definicji funkcji.

              @include "nazwa_pliku"
              @load "nazwa_pliku"
              @namespace "nazwa"
              wzorzec   { instrukcje akcji }
              function nazwa(lista parametrów) { instrukcje }

       Gawk  first  reads the program source from the program-file(s)  if specified, from arguments to --source,
       or from the first non-option argument on the command line.  The -f  and  --source  options  may  be  used
       multiple  times on the command line.  Gawk reads the program text as if all the program-files and command
       line source texts had been concatenated together.

       In addition, lines beginning with @include may be used to include other source files into  your  program.
       This is equivalent to using the --include option.

       Lines beginning with @load may be used to load extension functions into your program.  This is equivalent
       to using the --load option.

       The  environment variable AWKPATH specifies a search path to use when finding source files named with the
       -f and --include options.  If this variable does not exist, the default path is ".:/usr/local/share/awk".
       (The actual directory may vary, depending upon how gawk was built and installed.)  If a file  name  given
       to the -f option contains a “/” character, no path search is performed.

       The  environment  variable AWKLIBPATH specifies a search path to use when finding source files named with
       the --load option.  If this variable does not exist, the default  path  is  "/usr/local/lib/gawk".   (The
       actual directory may vary, depending upon how gawk was built and installed.)

       Gawk  executes AWK programs in the following order.  First, all variable assignments specified via the -v
       option are performed.  Next, gawk compiles the program into an internal form.  Then,  gawk  executes  the
       code  in  the  BEGIN rule(s) (if any), and then proceeds to read each file named in the ARGV array (up to
       ARGV[ARGC-1]).  If there are no files named on the command line, gawk reads the standard input.

       If a filename on the command line has the form var=val it is  treated  as  a  variable  assignment.   The
       variable var will be assigned the value val.  (This happens after any BEGIN rule(s) have been run.)

       Jeśli wartość konkretnego elementu ARGV jest pusta (""), to gawk ją pomija.

       For  each input file, if a BEGINFILE rule exists, gawk executes the associated code before processing the
       contents of the file. Similarly, gawk executes the code associated with ENDFILE  rules  after  processing
       the file.

       For  each  record in the input, gawk tests to see if it matches any pattern in the AWK program.  For each
       pattern that the record matches, gawk executes the associated action.  The patterns  are  tested  in  the
       order they occur in the program.

       Finally, after all the input is exhausted, gawk executes the code in the END rule(s) (if any).

   Command Line Directories
       According  to POSIX, files named on the awk command line must be text files.  The behavior is “undefined”
       if they are not.  Most versions of awk treat a directory on the command line as a fatal error.

       For gawk, a directory on the command line produces a warning, but is otherwise skipped.  If either of the
       --posix or --traditional options is given, then gawk reverts to treating directories on the command  line
       as a fatal error.

ZMIENNE, REKORDY I POLA

       AWK  variables  are  dynamic; they come into existence when they are first used.  Their values are either
       floating-point numbers or strings, or both, depending upon how they are used.  Additionally, gawk  allows
       variables  to  have  regular-expression  type.  AWK also has one dimensional arrays; arrays with multiple
       dimensions may be simulated.   However,  gawk  provides  true  arrays  of  arrays.   Several  pre-defined
       variables are set as a program runs; these are described as needed and summarized below.

   Rekordy
       Rekordy  są  zwykle  rozdzielone znakami nowego wiersza. Można to zmienić przypisując wartości wbudowanej
       zmiennej             RS.              Więcej              szczegółów              na              stronie
       https://www.gnu.org/software/gawk/manual/html_node/Records.html.

   Pola
       Przy  odczytywaniu każdego rekordu wejściowego, gawk dzieli rekord na pola za pomocą wartości zmiennej FS
       służącej jako separator pól. Dodatkowo, zmiennymi FIELDWIDTHS i  FPAT  można  kontrolować  dzielenie  pól
       wejściowych.         Więcej         szczegółów         opisano,         począwszy        od        strony
       https://www.gnu.org/software/gawk/manual/html_node/Fields.html.

       Do każdego pola w rekordzie wejściowym można odwołać się przez jego pozycję: $1, $2, itd. $0  jest  całym
       rekordem, łącznie z początkowymi i końcowymi białymi znakami.

       Zmienna NF jest ustawiana na całkowitą liczbę pól w rekordzie wejściowym.

       References  to non-existent fields (i.e., fields after $NF)  produce the null string.  However, assigning
       to a non-existent field (e.g., $(NF+2) = 5)  increases the value of NF, creates  any  intervening  fields
       with  the null string as their values, and causes the value of $0 to be recomputed, with the fields being
       separated by the value of OFS.  References to negative numbered fields cause a fatal error.  Decrementing
       NF causes the values of fields past the new value to be lost, and the value of $0 to be recomputed,  with
       the fields being separated by the value of OFS.

       Przypisanie  wartości  istniejącemu polu powoduje ponowne utworzenie całego rekordu podczas odwołania się
       do $0.  Podobnie, przypisanie wartości do $0 powoduje, że rekord jest  ponownie  dzielony,  tworząc  nowe
       wartości pól.

   Wbudowane zmienne
       Poniżej wypisano wbudowano zmienne programu gawk. Lista ta jest celowo zwięzła. Więcej szczegółów opisano
       na stronie https://www.gnu.org/software/gawk/manual/html_node/Built_002din-Variables.

       ARGC        Liczba argumentów wiersza poleceń.

       ARGIND      Indeks w tablicy ARGV bieżąco przetwarzanego pliku.

       ARGV        Tablica argumentów wiersza poleceń. Tablica ta jest indeksowana od 0 do ARGC - 1.

       BINMODE     Na  systemach  nie-POSIX-owych,  określa  użycie  trybu  „binarnego”  do  wszystkich operacji
                   wejścia/wyjścia         plików.         Więcej         szczegółów         pod         adresem
                   https://www.gnu.org/software/gawk/manual/html_node/PC-Using.html.

       CONVFMT     Format konwersji dla liczb, domyślnie "%.6g".

       ENVIRON     Tablica  zawierająca  wartości  bieżącego  środowiska.  Tablica ta jest indeksowana zmiennymi
                   środowiskowymi, każdy element tablicy jest wartością danej zmiennej.

       ERRNO       Jeśli pojawi się błąd systemowy podczas przekierowywania dla  getline,  podczas  odczytu  dla
                   getline  lub  podczas  close(), to ERRNO jest ustawiana na łańcuch opisujący błąd. Podlega on
                   tłumaczeniu przy ustawieniach locale innych niż angielskie.

       FIELDWIDTHS Jest rozdzieloną białymi znakami listą szerokości pól. Jeśli zmienna ta  jest  ustawiona,  to
                   gawk  rozbija  wejście  na pola o stałych szerokościach (domyślnie rozbija je według wartości
                   separatora FS). Każdą szerokość pola można opcjonalnie poprzedzić  wartościami  rozdzielonymi
                   dwukropkiem, określającymi liczbę znaków do pominięcia, przed rozpoczęciem pola.

       FILENAME    Nazwa  pliku bieżącego pliku wejściowego. Jeśli nie podano plików w wierszu poleceń, FILENAME
                   przechowuje wartość „-”. Wartość zmiennej FILENAME jest niezdefiniowana wewnątrz reguły BEGIN
                   (chyba że zostanie nadana przez getline).

       FNR         Liczba rekordów wejściowych w bieżącym pliku wejściowym.

       FPAT        Wyrażenie regularne opisujące zawartość pól w rekordzie. Jeśli zmienna ta jest ustawiona,  to
                   gawk przetwarza wejście na pola pasujące do wyrażenia regularnego, zamiast używać wartości FS
                   jako separatora pól.

       FS          Separator    pól    wejściowych,    domyślnie   spacja.   Więcej   szczegółów   pod   adresem
                   https://www.gnu.org/software/gawk/manual/html_node/Field-Separators.html.

       FUNCTAB     Tablica, której indeksy i powiązane  wartości  są  nazwami  wszystkich  zdefiniowanych  przez
                   użytkownika  lub  będących rozszerzeniami funkcjami w programie. UWAGA: w tablice FUNCTAB nie
                   można używać instrukcji delete.

       IGNORECASE  Kontroluje wrażliwość na  wielkość  znaków  wszystkich  wyrażeń  regularnych  i  operacji  na
                   łańcuchach          tekstowych.         Więcej         szczegółów         pod         adresem
                   https://www.gnu.org/software/gawk/manual/html_node/Case_002dsensitivity.html.

       LINT        Zapewnia dynamiczną kontrolę opcji --lint z wnętrza programu AWK.

       NF          Liczba pól w bieżącym rekordzie wejściowym.

       NR          Całkowita liczba odczytanych do tej pory rekordów wejściowych.

       OFMT        Format wyjściowy liczb, domyślnie "%.6g".

       OFS         Separator pól wyjściowych, domyślnie spacja.

       ORS         Separator rekordów wyjściowych, domyślnie nowa linia.

       PREC        Robocza precyzja liczb zmiennoprzecinkowych o dowolnej precyzji, domyślnie 53.

       PROCINFO    Elementy tej tablicy zapewniają dostęp do informacji  o  działającym  programie  AWK.  Więcej
                   szczegółów pod adresem https://www.gnu.org/software/gawk/manual/html_node/Auto_002dset.

       ROUNDMODE   Tryb  zaokrąglania  w  przypadku  arytmetyki  liczb  o dowolnej precyzji, domyślnie "N" (tryb
                   roundTiesToEven        IEEE-754).        Więcej        szczegółów         pod         adresem
                   https://www.gnu.org/software/gawk/manual/html_node/Setting-the-rounding-mode.

       RS          Separator rekordów wejściowych, domyślnie nowy wiersz.

       RT          Zakończenie  rekordu.   Gawk  ustawia  RT  na  tekst  wejściowy,  który  pasował do znaku lub
                   wyrażenia regularnego określonego przez RS.

       RSTART      Indeks pierwszego znaku dopasowanego funkcją match(); 0 w przypadku braku dopasowania.

       RLENGTH     Długość łańcucha dopasowanego funkcją match(); -1 w przypadku braku dopasowania.

       SUBSEP      Łańcuch, używany do rozdzielania wielokrotnych indeksów w elementach  tablicowych,  domyślnie
                   jest to "\034".

       SYMTAB      An  array whose indices are the names of all currently defined global variables and arrays in
                   the program.  You may not use the delete statement with  the  SYMTAB  array,  nor  assign  to
                   elements with an index that is not a variable name.

       TEXTDOMAIN  Dziedzina tekstowa programu AWK.  Stosowane od odszukania zlokalizowanych tłumaczeń łańcuchów
                   znakowych programu.

   Tablice
       Tablice  są  indeksowane  wyrażeniem,  ujętym  w  nawiasy kwadratowe ([ i ]).  Jeśli wyrażenie jest listą
       wyrażeń (wyraż, wyraż ...)  to indeks tablicy jest sklejany z wartości (łańcuchowych) każdego  wyrażenia,
       oddzielonych  wartością  zmiennej  SUBSEP.  [Uwaga: jest tak dlatego, że AWK używa tablic asocjacyjnych -
       tak jakby słownikowych - nie ma  tu  normalnych  liczbowych  indeksów  -  indeksem  może  być  cokolwiek,
       najczęściej  łańcuch.  Symulowanie  tablic  wielowymiarowych  polega  właśnie na sklejaniu poszczególnych
       indeksów w unikalny łańcuch -- przyp.  tłum.] Właściwość ta jest używana  do  symulacji  wielowymiarowych
       tablic. Na przykład:

              i = "A"; j = "B"; k = "C"
              x[i, j, k] = "hello, world\n"

       przypisuje  łańcuch  "hello, world\n"  elementowi  tablicy x, o indeksie będącym łańcuchem "A\034B\034C".
       Wszystkie tablice w AWK są asocjacyjne, tj. indeksowane wartościami łańcuchowymi.

       The special operator in may be used to test if an array has an index consisting of a particular value:

              if (val in array)   print array[val]

       Jeśli tablica posiada wielokrotne indeksy, można użyć konstrukcji (i, j) in array.

       Konstrukcja in może być również użyta w pętli  for  do  iterowania  poprzez  wszystkie  elementy  tablicy
       [ponieważ  jest  ona  asocjacyjna, nie można jej iterować przez przelecenie indeksu od zera do najwyższej
       wartości - indeks może być tu przecież dowolnym łańcuchem - przyp.  tłum.]. Jednak konstrukcja (i, j)  in
       array działa tylko w testach, nie w pętlach for.

       Element  można skasować z tablicy przy użyciu polecenia delete.  Poleceniem delete można się też posłużyć
       do skasowania całej zawartości tablicy, przez podanie jej nazwy bez indeksu.

       gawk obsługuje prawdziwe tablice wielowymiarowe. Nie wymaga, aby były one „prostokątne”, jak w C lub C++.
       Więcej szczegółów pod adresem https://www.gnu.org/software/gawk/manual/html_node/Arrays.

   Przestrzenie nazw
       Gawk obsługuje uproszczoną funkcjonalność przestrzeni nazw, aby pomóc obejść ograniczenia,  wynikające  z
       tego, że wszystkie zmienne w AWK są globalne.

       Nazwa  kwalifikowalna składa się z dwóch prostych identyfikatorów połączonych podwójnym dwukropkiem (::).
       Lewa strona identyfikatora reprezentuje  przestrzeń  nazw,  a  prawa  —  jej  zmienną.  Wszystkie  proste
       (niekwalifikowalne)  nazwy  są  uważane  za  znajdujące  się  w  „bieżącej”  przestrzeni  nazw;  domyślną
       przestrzenią nazw jest awk. Jednak proste identyfikatory składające  się  jedynie  z  wielkich  liter  są
       zawsze przypisywane przestrzeni nazw awk, nawet jeśli bieżąca przestrzeń nazw jest inna.

       Można zmienić bieżącą przestrzeń nazw za pomocą dyrektywy @namespace "nazwa".

       Standardowe,  predefiniowane  nazwy  funkcji  wbudowanych nie mogą być użyte jako nazwy przestrzeni nazw.
       Nazwy dodatkowych funkcji zapewnianych przez gawk mogą być używane jako przestrzenie nazw lub jako proste
       identyfikatory   w   innych   przestrzeniach   nazw.    Więcej    szczegółów    opisano    pod    adresem
       https://www.gnu.org/software/gawk/manual/html_node/Namespaces.html#Namespaces.

   Typy zmiennych i konwersje
       Zmienne  oraz  pola  mogą być liczbami (zmiennoprzecinkowymi), łańcuchami lub jednym i drugim naraz. Mogą
       być też wyrażeniami regularnymi. Interpretacja wartości zmiennej zależy od kontekstu.  Jeśli jest użyta w
       wyrażeniu numerycznym, jest interpretowana jako liczba; jeśli jest użyta w wyrażeniu łańcuchowym, to jest
       traktowana jak łańcuch.

       Aby wymusić traktowanie zmiennej jako liczby, należy do niej dodać zero; aby wymusić traktowanie jej jako
       łańcucha, należy dokleić do niej łańcuch zerowy.

       Niezainicjowane zmienne mają wartość numeryczną zero i łańcuchową "" (zero lub pusty łańcuch).

       Podczas konwersji łańcucha na liczbę, obróbka jest dokonywana przy użyciu funkcji strtod(3).  Liczba jest
       przekształcana na łańcuch przy użyciu wartości CONVFMT jako parametru formatującego dla sprintf(3),  oraz
       wartości  numerycznej jako argumentu. Jednak, nawet mimo że wszystkie liczby w AWK są zmiennoprzecinkowe,
       wartości całkowite są zawsze konwertowane jak całkowite (integer).

       Gawk dokonuje porównań w następujący sposób:  Jeśli  dwie  wartości  są  numeryczne,  to  są  porównywane
       numerycznie.  Jeśli  jedna  z  wartości  jest  numeryczna,  a  druga  łańcuchowa,  która  jest “łańcuchem
       numerycznym”, to porównania są również dokonywane numerycznie.  W przeciwnym wypadku  wartość  numeryczna
       jest  konwertowana  do  łańcucha  i  dokonywane jest porównanie łańcuchowe.  Dwa łańcuchy są, oczywiście,
       porównywane jako łańcuchy.

       Zauważ, że stałe znakowe, takie jak "57" nie są łańcuchami numerycznymi - są  one  stałymi  łańcuchowymi.
       Pojęcie „łańcuchów numerycznych” odnosi się wyłącznie do pól, wejścia getinput, FILENAME, elementów ARGV,
       ENVIRON  i elementów tablicy utworzonej funkcją split() lub patsplit(), będących łańcuchami numerycznymi.
       Podstawową koncepcją jest to, że wyglądające na numeryczne dane z wejścia użytkownika, i  tylko  one,  są
       traktowane w opisany sposób.

   Stałe ósemkowe i szesnastkowe
       W kodzie źródłowym programów AWK można korzystać ze stałych ósemkowych i szesnastkowych w stylu języka C.
       Na  przykład,  ósemkowa  wartość 011 jest równa dziesiętnej 9, a szesnastkowa 0x11 jest równa dziesiętnej
       17.

   Stałe łańcuchowe
       Stałe łańcuchowe w AWK są sekwencjami znaków ujętymi w cudzysłowy  (jak  "wartość").  Wewnątrz  łańcuchów
       rozpoznawane    są    pewne   sekwencje   specjalne,   jak   w   C.   Więcej   szczegółów   pod   adresem
       https://www.gnu.org/software/gawk/manual/html_node/Escape-Sequences.

   Stałe wyrażeń regularnych
       Stała wyrażenia regularnego jest sekwencją znaków ujętych pomiędzy ukośniki (jak /wartość/).

       Sekwencji specjalnych opisanych w podręczniku można też używać wewnątrz stałych wyrażeń regularnych (np.,
       /[ \t\f\n\r\v]/ dopasowuje białe znaki).

       Gawk zapewnia stałe wyrażeń regularnych ze  ścisłą  kontrolą  typów.  Są  one  zapisywane  z  początkowym
       symbolem  @  (jak:  @/wartość/).  Takie  zmienne  mogą  być przypisane do wartości skalarnych (zmiennych,
       elementów tablicy) i przekazywane do funkcji zdefiniowanych przez użytkownika. Przypisane  w  ten  sposób
       zmienne mają zwykły typ wyrażenia regularnego.

WZORCE I AKCJE

       AWK  jest językiem zorientowanym liniowo. Najpierw przychodzi wzorzec, a potem akcja. Instrukcje akcji są
       zawarte w nawiasach { i }.  Pominąć można zarówno wzorzec, jak i akcję, lecz  oczywiście  nie  obydwa  te
       pola  naraz.  Jeśli pominięto wzorzec, to akcja jest wykonywana dla każdego z rekordów wejścia. Brakująca
       akcja jest z kolei równoważna akcji

              { print }

       która wypisuje cały rekord.

       Komentarze rozpoczynają się znakiem # i trwają aż do  końca  wiersza.  Do  oddzielania  instrukcji  można
       używać  pustych  wierszy. Zwykle instrukcja kończy się wraz z nowym wierszem, jednak nie jest to regułą w
       przypadku wierszy kończących się na przecinek, {, ?, :, && lub ||. Dla wierszy kończących się na  do  lub
       else  również  wystąpi  automatyczna  kontynuacja  instrukcji  w następnym wierszu. W innych przypadkach,
       wiersz może być kontynuowany przez zakończenie go znakiem „\”; w takim wypadku znak nowego  wiersza  jest
       ignorowany. Jednak „\” po znaku # nie jest traktowane w specjalny sposób.

       Wiele  instrukcji  można też zgrupować w jednym wierszu, oddzielając je znakiem „;”. Tyczy się to zarówno
       instrukcji w  części  akcji  z  pary  wzorzec-akcja  (zwykły  przypadek),  jak  i  do  samych  instrukcji
       wzorzec-akcja.

   Wzorce
       Wzorce w AWK mogą być jedną z następujących rzeczy:

              BEGIN
              END
              BEGINFILE
              ENDFILE
              /wyrażenie regularne/
              wyrażenie relacyjne
              wzorzec && wzorzec
              wzorzec || wzorzec
              wzorzec ? wzorzec : wzorzec
              (wzorzec)
              ! wzorzec
              wzorzec1, wzorzec2

       BEGIN i END są dwoma specjalnymi rodzajami wzorców, które nie są porównywane z danymi wejściowymi. Części
       akcji  wszelkich  wzorców BEGIN są łączone, tak jakby wszystkie one zostały napisane w pojedynczej regule
       BEGIN.  Są one wykonywane przed rozpoczęciem odczytywania danych wejściowych.  Podobnie, wszelkie  reguły
       END  są  również  łączone  i wykonywane po wyczerpaniu danych wejściowych.  (lub po dojściu do instrukcji
       exit.)  Wzorce BEGIN i END nie mogą być łączone z innymi  wzorcami  w  wyrażeniach  wzorcowych.   Wzorcom
       BEGIN i END nie może brakować części definiującej akcję.

       BEGINFILE and ENDFILE are additional special patterns whose actions are executed before reading the first
       record  of  each  command-line  input  file  and  after reading the last record of each file.  Inside the
       BEGINFILE rule, the value of ERRNO is the empty string if the file was opened  successfully.   Otherwise,
       there  is  some  problem  with the file and the code should use nextfile to skip it. If that is not done,
       gawk produces its usual fatal error for files that cannot be opened.

       Dla wzorców /wyrażeń regularnych/ powiązana instrukcja wykonywana jest dla każdego  rekordu  wejściowego,
       który  odpowiada  zadanemu  wyrażeniu  regularnemu.  Wyrażenia  regularne są w gruncie rzeczy tymi samymi
       wyrażeniami, które można spotkać w egrep(1). Więcej informacji o wyrażeniach regularnych znajduje się  na
       stronie https://www.gnu.org/software/gawk/manual/html_node/Regexp.html.

       wyrażenie  relacyjne  może  używać  dowolnego  operatora ze zdefiniowanych w sekcji o akcjach operatorów.
       Ogólnie, testują one, czy określone pola odpowiadają określonym wyrażeniom regularnym.

       Operatory &&, ||, i ! są logicznymi AND, OR i NOT, podobnie jak w języku C. Są  one  obliczane  w  sposób
       skrócony,  podobnie  jak  w  C,  i  służą  głównie  do łączenia bardziej podstawowych wyrażeń wzorcowych.
       Podobnie jak w większości języków, dla wymuszenia kolejności porównywania można użyć nawiasów.

       Operator ?: działa podobnie jak ten sam operator w C.  Jeśli  pierwszy  wzorzec  jest  prawdziwy,  to  do
       testowania  używany  jest  następny  wzorzec; w przeciwnym wypadku używany jest trzeci wzorzec. Obliczany
       jest tylko albo drugi albo trzeci wzorzec.

       Forma wzorzec1, wzorzec2 wyrażenia jest nazywana  wzorcem  zakresu.   Dopasowuje  ona  wszystkie  rekordy
       wejście,  poczynając  od  rekordu,  który  odpowiada  wzorcowi1,  aż  do  rekordu pasującego do wzorzec2,
       włącznie. Nie łączy się to z innymi rodzajami wyrażeń wzorcowych.

   Akcje
       Instrukcje akcji są zawarte w nawiasach { i }.  Instrukcje akcji składają się ze  zwyczajnych  instrukcji
       przypisania,  warunków i instrukcji pętli, które można znaleźć w większości innych języków programowania.
       Operatory, instrukcje sterującymi, a także instrukcje wejścia/wyjścia są opracowane  na  podstawie  tych,
       spotykanych w języku C.

   Operatory
       Operatory w AWK, w kolejności malejącego priorytetu, to

       (...)       Grupowanie

       $           Odniesienie się do pola.

       ++ --       Inkrementuj i dekrementuj. Zarówno przedrostkowe i przyrostkowe.

       ^           Potęgowanie.

       + - !       Jednoargumentowy plus, minus i logiczna negacja.

       * / %       Mnożenie, dzielenie i modulo (reszta dzielenia).

       + -         Dodawanie i odejmowanie.

       odstęp      Konkatenacja (złączenie) łańcuchów.

       |   |&      Przekierowanie wejścia/wyjścia potokiem dla getline, print i printf.

       < > <= >= == !=
                   Regularne operatory relacyjne.

       ~ !~        Dopasowanie wyrażenia regularnego, wyrażenie przeciwne.

       in          Przynależność do tablicy.

       &&          Koniunkcja logiczna AND.

       ||          Alternatywa logiczna OR.

       ?:          The  C  conditional  expression.  This has the form expr1 ? expr2 : expr3.  If expr1 is true,
                   the value of the expression is expr2, otherwise it is expr3.  Only one of expr2 and expr3  is
                   evaluated.

       = += -= *= /= %= ^=
                   Przypisanie.  Obsługiwane  jest  zarówno  przypisanie  absolutne  (zmienna  =  wartość) jak i
                   przypisanie operatorowe (inne formy).

   Instrukcje sterujące
       Instrukcje sterujące są następujące:

              if (warunek) instrukcja [ else instrukcja ]
              while (warunek) instrukcja
              do instrukcja while (warunek)
              for (wyraż1; wyraż2; wyraż3) instrukcja
              for (var in tablica) instrukcja
              break
              continue
              delete tablica[indeks]
              delete tablica
              exit [ wyrażenie ]
              { instrukcje }
              switch (wyrażenie) { case wartość|wyraż-regul : instrukcja ... [ default: instrukcja ]
              }

   Instrukcje I/O
       Instrukcje I/O są następujące:

       close(plik [, jak])   Zamyka otwarty plik, potok lub proces współbieżny (co-process).   Opcjonalnego  jak
                             powinno  się  używać wyłącznie do zamykania jednego końca dwukierunkowego potoku do
                             procesu współbieżnego. Musi to być wartość łańcuchowa, albo "to" albo "from".

       getline               Ustawia $0 z następnego rekordu wejściowego; ustawia NF, NR, FNR, RT.

       getline <plik         Ustawia $0 z następnego rekordu pliku; ustawia NF, RT.

       getline var           Ustawia var z następnego rekordu wejściowego; ustawia NR, FNR, RT.

       getline var <plik     Ustawia var z następnego rekordu pliku; ustawia RT.

       polecenie | getline [var]
                             Run command, piping the output either into $0 or var, as above, and RT.

       polecenie |& getline [var]
                             Run command as a coprocess piping the output either into $0 or var, as  above,  and
                             RT.   (The  command  can  also be a socket.  See the subsection Special File Names,
                             below.)

       fflush([plik])        Flush any buffers associated with the open output file or pipe file.   If  file  is
                             missing or if it is the null string, then flush all open output files and pipes.

       next                  Stop  processing  the  current  input record.  Read the next input record and start
                             processing over with the first pattern in the AWK program.  Upon reaching  the  end
                             of the input data, execute any END rule(s).

       nextfile              Stop  processing the current input file.  The next input record read comes from the
                             next input file.  Update FILENAME and ARGIND, reset FNR to 1, and start  processing
                             over with the first pattern in the AWK program.  Upon reaching the end of the input
                             data, execute any ENDFILE and END rule(s).

       print                 Wypisuje bieżący rekord. Rekord wyjściowy zakończony jest wartością ORS.

       print lista-wyrażeń   Wypisuje  wyrażenia.  Każde  wyrażenie  jest  oddzielone  wartością OFS.  Wyjściowy
                             rekord jest kończony wartością ORS.

       print lista-wyrażeń >plik
                             Wypisuje wyrażenia do pliku.   Każde  wyrażenie  jest  rozdzielone  wartością  OFS.
                             Rekord wyjściowy jest zakończony wartością ORS.

       printf fmt, lista-wyrażeń
                             Formatuje i wypisuje/

       printf fmt, lista-wyrażeń >plik
                             Formatuje i wypisuje do pliku.

       system(cmd-line)      Wywołuje polecenie systemowe cmd-line, i zwraca jego status wyjścia.  (funkcja może
                             nie  być  dostępna  na  systemach  nie  POSIX-owych).  Pełne  informacje o statusie
                             zakończenia             są             dostępne             pod             adresem
                             https://www.gnu.org/software/gawk/manual/html_node/I_002fO-Functions.html#I_002fO-Functions.

       Dozwolone są też dodatkowe przekierowania wejścia i wyjścia dla print i printf.

       print ... >> plik
              Dokleja wyjście do pliku.

       print ... | polecenie
              Zapisuje do potoku.

       print ... |& polecenie
              Send data to a coprocess or socket.  (See also the subsection Special File Names, below.)

       The  getline  command  returns  1  on  success, zero on end of file, and -1 on an error.  If the errno(3)
       value indicates that the I/O operation may be retried, and PROCINFO["input", "RETRY"] is set, then -2  is
       returned  instead of -1, and further calls to getline may be attempted.  Upon an error, ERRNO is set to a
       string describing the problem.

       NOTE: Failure in opening a two-way socket results in a non-fatal error  being  returned  to  the  calling
       function.  If  using  a pipe, coprocess, or socket to getline, or from print or printf within a loop, you
       must use close() to create new instances of the command or socket.   AWK  does  not  automatically  close
       pipes, sockets, or coprocesses when they return EOF.

       The  AWK  versions of the printf statement and sprintf() function are similar to those of C. For details,
       see https://www.gnu.org/software/gawk/manual/html_node/Printf.html.

   Specjalne nazwy plików
       Podczas przekierowań I/O przy użyciu print czy też printf do pliku, albo przy  użyciu  getline  z  pliku,
       gawk rozpoznaje wewnętrznie pewne specjalne nazwy plików. Te nazwy plików umożliwiają dostęp do otwartych
       deskryptorów  plików,  dziedziczonych  po  procesie rodzicielskim gawk'a (zazwyczaj powłoce).  Inne pliki
       specjalne zapewniają dostęp do informacji o uruchomionym procesie gawk.  Z tych specjalnych  nazw  plików
       można również korzystać w wierszu poleceń do określania plików danych.  Te nazwy to:

       -           Standardowe wejście.

       /dev/stdin  Standardowe wejście.

       /dev/stdout Standardowe wyjście.

       /dev/stderr Standardowe wyjście diagnostyczne.

       /dev/fd/n   Plik związany z otwartym deskryptorem pliku n.

       Poniższych  specjalnych  nazw  plików  można  używać  z  operatorem procesu współbieżnego |& do tworzenia
       witrualnych połączeń sieciowych TCP/IP:

       /inet/tcp/lport/rhost/rport
       /inet4/tcp/lport/rhost/rport
       /inet6/tcp/lport/rhost/rport
              Files for a TCP/IP connection on local port lport to remote host rhost on remote port rport.   Use
              a port of 0 to have the system pick a port.  Use /inet4 to force an IPv4 connection, and /inet6 to
              force  an  IPv6  connection.  Plain /inet uses the system default (most likely IPv4).  Usable only
              with the |& two-way I/O operator.

       /inet/udp/lport/rhost/rport
       /inet4/udp/lport/rhost/rport
       /inet6/udp/lport/rhost/rport
              Podobne, lecz używa UDP/IP zamiast TCP/IP.

   Funkcje numeryczne
       AWK ma następujące wbudowane funkcje arytmetyczne:

       atan2(y, x)   Zwraca arcus tangens y/x w radianach.

       cos(wyraż)    Zwraca cosinus z wyraż w radianach.

       exp(wyraż)    funkcja wykładnicza.

       int(wyraż)    Skraca do liczby całkowitej.

       log(wyraż)    funkcja logarytmu naturalnego.

       rand()        Return a random number N, between zero and one, such that 0 ≤ N < 1.

       sin(wyraż)    Zwraca sinus z wyraż w radianach.

       sqrt(wyraż)   Return the square root of expr.

       srand([wyraż])
                     Używa wyraż jako nowego ziarno dla generatora liczb losowych.  Bez  podanego  wyraż,  używa
                     czasu dnia. Zwraca poprzednie ziarno generatora liczb losowych.

   Funkcje łańcuchowe
       Gawk    posiada    następujące    wbudowane    funkcje   łańcuchowe;   szczegółowy   opis   pod   adresem
       https://www.gnu.org/software/gawk/manual/html_node/String-Functions.

       asort(s [, d [, how] ]) Return the number of elements in the source array s.   Sort  the  contents  of  s
                               using  gawk's  normal  rules for comparing values, and replace the indices of the
                               sorted values s with  sequential  integers  starting  with  1.  If  the  optional
                               destination  array  d  is  specified,  first duplicate s into d, and then sort d,
                               leaving the indices of the source array s  unchanged.  The  optional  string  how
                               controls  the  direction  and  the  comparison  mode.   Valid  values for how are
                               described                                                                      in
                               https://www.gnu.org/software/gawk/manual/html_node/String-Functions.html#String-Functions.
                               s  and  d  are allowed to be the same array; this only makes sense when supplying
                               the third argument as well.

       asorti(s [, d [, how] ])
                               Return the number of elements in the source array s.  The behavior is the same as
                               that of asort(), except that the array indices are  used  for  sorting,  not  the
                               array  values.   When  done, the array is indexed numerically, and the values are
                               those of the original indices.  The original values  are  lost;  thus  provide  a
                               second  array  if you wish to preserve the original.  The purpose of the optional
                               string how is the same as for asort().  Here too, s and d are allowed to  be  the
                               same array; this only makes sense when supplying the third argument as well.

       gensub(r, s, h [, t])   W  łańcuchu docelowym t wyszukuje podłańcuchy odpowiadające wyrażeniu regularnemu
                               r.  Jeżeli h jest łańcuchem zaczynającym się od g lub G, to  zastępuje  wszystkie
                               znalezione   dopasowania  r  przez  s.   W  przeciwnym  wypadku,  h  jest  liczbą
                               wskazującą, które z kolejnych dopasowań  r  ma  zostać  zastąpione.   Jeżeli  nie
                               podano  t,  to  zamiast  niego używane jest $0.  Wewnątrz tekstu zastępującego s,
                               można posłużyć się sekwencją \n, gdzie n jest cyfrą od  1  do  9,  wskazującą  na
                               tekst  dopasowany  przez n-te podwyrażenie w nawiasach. Sekwencja \0 oznacza cały
                               dopasowany tekst, tak samo jak znak &.  W przeciwieństwie do sub() i gsub(), jako
                               wynik funkcji zwracany jest zmieniony łańcuch,  zaś  pierwotny  łańcuch  docelowy
                               pozostaje nie zmieniony.

       gsub(r, s [, t])        For  each substring matching the regular expression r in the string t, substitute
                               the string s, and return the number of substitutions.  If t is not supplied,  use
                               $0.   An  &  in  the replacement text is replaced with the text that was actually
                               matched.  Use \& to get  a  literal  &.   (This  must  be  typed  as  "\\&";  see
                               https://www.gnu.org/software/gawk/manual/html_node/Gory-Details.html#Gory-Details
                               for  a  fuller  discussion  of  the  rules  for ampersands and backslashes in the
                               replacement text of sub(), gsub(), and gensub().)

       index(s, t)             Return the index of the string t in the string s, or zero if t  is  not  present.
                               (This implies that character indices start at one.)

       length([s])             Return  the  length  of  the  string s, or the length of $0 if s is not supplied.
                               With an array argument, length() returns the number of elements in the array.

       match(s, r [, a])       Zwraca pozycję w s, gdzie pojawia się wyrażenie regularne r.  Jeśli nie podano r,
                               zwracane jest zero. Jeśli jest jednak obecne, to dodatkowo ustawiane  są  zmienne
                               RSTART  i  RLENGTH.   Zauważ,  że  kolejność  argumentów  jest  taka sama jak dla
                               operatora           ~:            str            ~            re.             See
                               https://www.gnu.org/software/gawk/manual/html_node/String-Functions.html#String-Functions
                               for a description of how the array a is filled if it is provided.

       patsplit(s, a [, r [, seps] ])
                               Split  the string s into the array a and the separators array seps on the regular
                               expression r, and return the number of fields.  Element values are  the  portions
                               of  s  that  matched r.  The value of seps[i] is the possibly null separator that
                               appeared after  a[i].   The  value  of  seps[0]  is  the  possibly  null  leading
                               separator.   If  r  is  omitted, FPAT is used instead.  The arrays a and seps are
                               cleared first.  Splitting behaves identically to field splitting with FPAT.

       split(s, a [, r [, seps] ])
                               Split the string s into the array a and the separators array seps on the  regular
                               expression  r,  and  return  the  number  of fields.  If r is omitted, FS is used
                               instead.  The arrays a  and  seps  are  cleared  first.   seps[i]  is  the  field
                               separator matched by r between a[i] and a[i+1].  Splitting behaves identically to
                               field splitting.

       sprintf(fmt, lista-wyraż)
                               wypisuje listę-wyraż według fmt, i zwraca łańcuch wyjściowy.

       strtonum(str)           Examine str, and return its numeric value.  If str begins with a leading 0, treat
                               it  as  an  octal  number.   If str begins with a leading 0x or 0X, treat it as a
                               hexadecimal number.  Otherwise, assume it is a decimal number.

       sub(r, s [, t])         Podobne do gsub(), lecz podmienia tylko pierwszy odpowiadający podłańcuch. Zwraca
                               zero albo jeden.

       substr(s, i [, n])      Zwraca maksymalnie n-znakowy podłańcuch łańcucha s, zaczynający się od pozycji i.
                               Jeśli pominięto parametr n, użyta zostaje reszta s.

       tolower(str)            Zwraca kopię łańcucha str, w której wszystkie wielkie litery  zostały  zastąpione
                               małymi.  Nie alfabetyczne znaki pozostają bez zmian.

       toupper(str)            Zwraca  kopię  łańcucha  str,  w  której wszystkie małe litery zostały zastąpione
                               wielkimi.  Nie alfabetyczne znaki pozostają bez zmian.

       Gawk jest świadomy wielobajtowości. Oznacza to, że index(), length(), substr() i match()  działają  wobec
       znaków, nie bajtów.

   Funkcje czasu
       Gawk provides the following functions for obtaining time stamps and formatting them. Details are provided
       in https://www.gnu.org/software/gawk/manual/html_node/Time-Functions.

       mktime(datespec [, utc-flag])
                 Turn  datespec  into  a  time  stamp  of the same form as returned by systime(), and return the
                 result.  If utc-flag is present and is non-zero or non-null, the time is assumed to be  in  the
                 UTC  time  zone; otherwise, the time is assumed to be in the local time zone.  If datespec does
                 not contain enough elements or if the resulting time is out of range, mktime() returns -1.  See
                 https://www.gnu.org/software/gawk/manual/html_node/Time-Functions.html#Time-Functions  for  the
                 details of datespec.

       strftime([format [, timestamp[, utc-flag]]])
                 Format  timestamp  according  to  the  specification  in format.  If utc-flag is present and is
                 non-zero or non-null, the result is in UTC,  otherwise  the  result  is  in  local  time.   The
                 timestamp  should  be  of the same form as returned by systime().  If timestamp is missing, the
                 current time of day is used.  If format is missing, a default format equivalent to  the  output
                 of  date(1)   is  used.   The  default  format  is  available in PROCINFO["strftime"].  See the
                 specification for the strftime() function  in  ISO  C  for  the  format  conversions  that  are
                 guaranteed to be available.

       systime() Zwraca  bieżący czas dnia w liczbach sekund od początku Epoki (czyli od północy UTC, 1 stycznia
                 1970 na systemach POSIX-owych).

   Funkcje operujące na bitach
       Gawk supplies the following  bit  manipulation  functions.   They  work  by  converting  double-precision
       floating  point values to uintmax_t integers, doing the operation, and then converting the result back to
       floating point.  Passing negative operands to any of these functions causes a fatal error.

       Funkcje czasu to:

       and(v1, v2 [, ...]) Return the bitwise AND of the values provided in the argument list.  There must be at
                           least two.

       compl(val)          Zwraca bitowe uzupełnienie val.

       lshift(val, ile)    Zwraca wartość val, przesuniętą w lewo o ile bitów.

       or(v1, v2 [, ...])  Return the bitwise OR of the values provided in the argument list.  There must be  at
                           least two.

       rshift(val, ile)    Zwraca wartość val, przesuniętą w prawo o ile bitów.

       xor(v1, v2 [, ...]) Return the bitwise XOR of the values provided in the argument list.  There must be at
                           least two.

   Funkcje typu
       The following functions provide type related information about their arguments.

       isarray(x) Zwraca prawdę, jeśli x jest tablicą lub fałsz w innym przypadku.

       typeof(x)  Return  a  string  indicating  the  type  of  x.  The string will be one of "array", "number",
                  "regexp", "string", "strnum", "unassigned", or "undefined".

   Funkcje internacjonalizacji
       The following functions may be used from within your AWK program for  translating  strings  at  run-time.
       For                             full                             details,                             see
       https://www.gnu.org/software/gawk/manual/html_node/I18N-Functions.html#I18N-Functions.

       bindtextdomain(katalog [, domena])
              Specify the directory where gawk looks for the .gmo files, in case they  will  not  or  cannot  be
              placed in the “standard” locations.  It returns the directory where domain is “bound.”
              Domyślną   domeną  jest  wartość  TEXTDOMAIN.   Jeśli  katalog  jest  łańcuchem  pustym  (""),  to
              bindtextdomain() zwraca bieżące wiązanie dla zadanej domeny.

       dcgettext(łańcuch [, domena [, kategoria]])
              Zwraca tłumaczenie łańcucha w domenie tekstowej domena dla kategorii locale  kategoria.   Domyślną
              domeną jest bieżąca wartość TEXTDOMAIN.  Domyślną wartością kategorii jest "LC_MESSAGES".

       dcngettext(string1, string2, number [, domain [, category]])
              Return  the  plural  form used for number of the translation of string1 and string2 in text domain
              domain for locale category category.  The default  value  for  domain  is  the  current  value  of
              TEXTDOMAIN.  The default value for category is "LC_MESSAGES".

   Boolean Valued Functions
       You can create special Boolean-typed values; see the manual for how they work and why they exist.

       mkbool(expression)
              Based on the boolean value of expression return either a true value or a false value.  True values
              have numeric value one.  False values have numeric value zero.

FUNKCJE UŻYTKOWNIKA

       Funkcje w AWK są definiowane następująco:

              function nazwa(lista parametrów) { instrukcje }

       Functions  execute  when  they  are called from within expressions in either patterns or actions.  Actual
       parameters supplied in the function call are used to instantiate the formal parameters  declared  in  the
       function.  Arrays are passed by reference, other variables are passed by value.

       Local  variables  are  declared as extra parameters in the parameter list.  The convention is to separate
       local variables from real parameters by extra spaces in the parameter list.  For example:

              function  f(p, q,     a, b)   # a i b  lokalne {     ... }

              /abc/     { ... ; f(1, 2) ; ... }

       The left parenthesis in a function call is required to immediately follow the function name, without  any
       intervening whitespace.  This restriction does not apply to the built-in functions listed above.

       Funkcje  mogą  wołać  siebie  nawzajem  i  mogą być rekurencyjne.  Parametry funkcji używane jako zmienne
       lokalne są podczas wywołania funkcji inicjalizowane na łańcuch pusty i liczbę zero.   Chcąc,  by  funkcja
       zwracała  wartość  należy  posłużyć  się  składnią:  return  wyraż.   Wartość zwracana przez funkcję jest
       niezdefiniowana jeśli nie podano wartości zwracanej  lub  funkcja  kończy  pracę  bez  jawnej  instrukcji
       powrotu.

       Jeżeli  użyto --lint, to gawk ostrzega o wywołaniach niezdefiniowanych funkcji podczas analizy składni, a
       nie w czasie wykonania.  Wywołanie niezdefiniowanej funkcji w czasie wykonania powoduje błąd krytyczny.

       Functions may be called indirectly. To do this, assign the name of  the  function  to  be  called,  as  a
       string,  to  a  variable.  Then use the variable as if it were the name of a function, prefixed with an @
       sign, like so:
              function myfunc() {      print "myfunc called"    ... }

              {    ...  the_func = "myfunc"      @the_func()    # call through the_func to myfunc  ... }

       Jeżeli użyto --lint, to gawk ostrzega o wywołaniach niezdefiniowanych funkcji podczas analizy składni,  a
       nie w czasie wykonania.  Wywołanie niezdefiniowanej funkcji w czasie wykonania powoduje błąd krytyczny.

DYNAMICZNE ŁADOWANIE NOWYCH FUNKCJI

       You  can dynamically add new functions written in C or C++ to the running gawk interpreter with the @load
       statement.    The   full   details   are   beyond    the    scope    of    this    manual    page;    see
       https://www.gnu.org/software/gawk/manual/html_node/Dynamic-Extensions.html#Dynamic-Extensions.

SYGNAŁY

       The  gawk  profiler  accepts two signals.  SIGUSR1 causes it to dump a profile and function call stack to
       the profile file, which is either awkprof.out, or whatever file was named with the --profile option.   It
       then continues to run.  SIGHUP causes gawk to dump the profile and function call stack and then exit.

INTERNACJONALIZACJA

       Stałe  łańcuchowe  są  ciągami  znaków ujętymi w cudzysłowy. W środowiskach innych niż angielskojęzyczne,
       możliwe jest oznakowanie łańcuchów  w  programie  AWK  jako  wymagających  tłumaczenia  na  własny  język
       narodowy.  Łańcuchy  takie  są  oznaczone  w  programie AWK przez początkowy znak podkreślenia (“_”).  Na
       przykład,

              gawk 'BEGIN { print "hello, world" }'

       zawsze wypisuje hello, world.  Ale,

              gawk 'BEGIN { print _"hello, world" }'

       might           print           bonjour,           monde            in            France.             See
       https://www.gnu.org/software/gawk/manual/html_node/Internationalization.html#Internationalization for the
       steps involved in producing and running a localizable AWK program.

ROZSZERZENIA GNU

       Gawk    has   a   too-large   number   of   extensions   to   POSIX   awk.    They   are   described   in
       https://www.gnu.org/software/gawk/manual/html_node/POSIX_002fGNU.html.   All  the   extensions   can   be
       disabled by invoking gawk with the --traditional or --posix options.

ZMIENNE ŚRODOWISKOWE

       The  AWKPATH  environment  variable  can be used to provide a list of directories that gawk searches when
       looking for files named via the -f, --file, -i and --include options, and the @include directive.  If the
       initial search fails, the path is searched again after appending .awk to the filename.

       Do podania listy katalogów przeglądanych przez gawk podczas poszukiwania plików  zadanych  opcjami  -l  i
       --load można posłużyć się zmienną środowiskową AWKLIBPATH.

       The  GAWK_PERSIST_FILE environment variable, if present, specifies a file to use as the backing store for
       persistent memory.  This is an experimental feature.  See GAWK: Efektywne programowanie  w  AWK  for  the
       details.

       The  GAWK_READ_TIMEOUT  environment variable can be used to specify a timeout in milliseconds for reading
       input from a terminal, pipe or two-way communication including sockets.

       For connection to a remote host via  socket,  GAWK_SOCK_RETRIES  controls  the  number  of  retries,  and
       GAWK_MSEC_SLEEP  the  interval  between retries.  The interval is in milliseconds. On systems that do not
       support usleep(3), the value is rounded up to an integral number of seconds.

       Jeśli w środowisku istnieje zmienna POSIXLY_CORRECT to gawk zachowuje się tak, jakby podano mu w  wierszu
       poleceń opcję --posix.  Jeśli podano opcję --lint, gawk wyda ostrzeżenie o tym efekcie.

STATUS ZAKOŃCZENIA

       If the exit statement is used with a value, then gawk exits with the numeric value given to it.

       Otherwise,  if  there  were  no  problems  during  execution, gawk exits with the value of the C constant
       EXIT_SUCCESS.  This is usually zero.

       If an error occurs, gawk exits with the value of the C constant EXIT_FAILURE.  This is usually one.

       If gawk exits because of a fatal error, the exit status is 2.  On non-POSIX systems, this  value  may  be
       mapped to EXIT_FAILURE.

INFORMACJA O WERSJI

       This man page documents gawk, version 5.2.

AUTORZY

       The  original version of UNIX awk was designed and implemented by Alfred Aho, Peter Weinberger, and Brian
       Kernighan of Bell Laboratories.  Brian Kernighan continues to maintain and enhance it.

       Paul Rubin i Jay Fenlason, z Free Software Foundation, napisali wersję gawk, zgodną z  oryginalną  wersją
       awk,  rozprowadzaną  w  Seventh  Edition  UNIX.   John Woods wprowadził wiele poprawek.  David Trueman, z
       pomocą Arnolda Robbinsa, uczynił gawk zgodnym z nową wersją  UNIX  awk.   Arnold  Robbins  jest  bieżącym
       opiekunem projektu.

       See  GAWK:  Efektywne  programowanie  w  AWK  for  a  full  list  of  the  contributors  to  gawk and its
       documentation.

       See the README file in the gawk distribution for up-to-date information about maintainers and which ports
       are currently supported.

ZGŁOSZENIA BŁĘDÓW

       If you find a bug in gawk, please use the gawkbug(1)  program to report it.

       Full       instructions       for       reporting       a        bug        are        provided        in
       https://www.gnu.org/software/gawk/manual/html_node/Bugs.html.   Please  carefully  read  and  follow  the
       instructions given there.  This will make bug reporting and resolution much easier for everyone involved.
       Really.

USTERKI

       Opcja -F niekoniecznie ma właściwość przypisywania zmiennych; pozostaje tylko dla zgodności wstecznej.

       This manual page is too long; gawk has too many features.

ZOBACZ TAKŻE

       egrep(1), sed(1), gawkbug(1), printf(3), and strftime(3).

       The AWK Programming Language, Alfred V. Aho, Brian W. Kernighan,  Peter  J.  Weinberger,  Addison-Wesley,
       1988. ISBN 0-201-07981-X.

       GAWK:  Efektywne  programowanie w AWK, Edition 5.2, shipped with the gawk source.  The current version of
       this document is available online at https://www.gnu.org/software/gawk/manual.

       The GNU gettext documentation, available online at https://www.gnu.org/software/gettext.

PRZYKŁADY

       Wypisz i posortuj nazwy zgłoszeniowe (login) wszystkich użytkowników:

            BEGIN     { FS = ":" }        { print $1 | "sort" }

       Zlicz linie w pliku:

                 { nlines++ }   END  { print nlines }

       Poprzedź każdą linię jej numerem w pliku:

            { print FNR, $0 }

       Konkatenatuj i numeruj linie (wariacja tematu):

            { print NR, $0 }

       Run an external command for particular lines of data:

            tail -f access_log |     awk '/myhome.html/ { system("nmap " $1 ">> logdir/myhome.html") }'

KOPIOWANIE NINIEJSZEJ DOKUMENTACJI

       Copyright © 1989, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001,  2002,  2003,  2004,  2005,
       2007,  2009,  2010,  2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Free Software
       Foundation, Inc.

       Permission is granted to make and distribute verbatim copies of this manual page provided  the  copyright
       notice and this permission notice are preserved on all copies.

       Permission  is  granted to copy and distribute modified versions of this manual page under the conditions
       for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a
       permission notice identical to this one.

       Permission is granted to copy and distribute translations of this  manual  page  into  another  language,
       under  the  above conditions for modified versions, except that this permission notice may be stated in a
       translation approved by the Foundation.

TŁUMACZENIE

       Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek  Borys  <pborys@dione.ids.pl>  i
       Michał Kułach <michal.kulach@gmail.com>

       Niniejsze  tłumaczenie  jest  wolną  dokumentacją.  Bliższe informacje o warunkach licencji można uzyskać
       zapoznając  się  z  GNU General Public License w wersji 3  lub  nowszej.   Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej manpages-pl-
       list@lists.sourceforge.net.

Free Software Foundation                        9 czerwca 2022 r.                                        GAWK(1)