Imię
gawk - język skanowania i przetwarzania wzorców
Streszczenie
gapić się Opcje stylu POSIX lub GNU -fa plik programu -- plik …gapić się Opcje stylu POSIX lub GNU -- tekst programu plik … pgawk Opcje stylu POSIX lub GNU -fa plik programu -- plik …pgawk Opcje stylu POSIX lub GNU -- tekst programu plik … Gapić się jest implementacją języka programowania AWK w Projekcie GNU. Jest zgodny z definicją języka w POSIX 1003.2 Command Language and Utilities Standard. Ta wersja z kolei opiera się na opisie w Język programowania AWK autorstwa Aho, Kernighana i Weinbergera z dodatkowymi funkcjami w wersji UNIX System V Release 4 awk . Gapić się zapewnia również nowsze laboratoria Bell awk rozszerzenia i wiele rozszerzeń specyficznych dla GNU. Pgawk jest wersją profilowania gapić się . Jest identyczny pod każdym względem gapić się , z tym wyjątkiem, że programy działają wolniej i automatycznie generują profil wykonania w pliku awkprof.out po zakończeniu. Zobacz --profil opcja poniżej. Wiersz poleceń składa się z opcji do gapić się sam tekst programu AWK (jeśli nie jest dostarczany przez -fa lub --plik opcje) oraz wartości, które należy udostępnić w ARGC i ARGV predefiniowane zmienne AWK. Gapić się opcje mogą być tradycyjnymi POSIX-ami jednoliterowymi lub długimi opcjami w stylu GNU. Opcje POSIX zaczynają się od pojedynczego `` - '', podczas gdy długie opcje zaczynają się od `` - ''. Dłuższe opcje są dostępne zarówno dla funkcji specyficznych dla GNU, jak i dla funkcji wymaganych przez POSIX. Zgodnie ze standardem POSIX, gapić się -specific opcje są dostarczane przez argumenty do -W opcja. Wielokrotność -W opcje mogą być dostarczane Każdy -W opcja ma odpowiednią długą opcję, jak opisano poniżej. Argumenty do długich opcji są połączone z opcją przez = znak, bez żadnych odstępów, lub mogą być podane w następnym argumencie wiersza poleceń. Długie opcje mogą być skracane, o ile skrót pozostaje niepowtarzalny. Gapić się akceptuje następujące opcje, wymienione alfabetycznie. -FA fs --field-separator fs Posługiwać się fs dla separatora pól wejściowych (wartość parametru FS predefiniowana zmienna). -v var = val --przydzielać var = val Przypisz wartość val do zmiennej var , przed rozpoczęciem wykonywania programu. Takie wartości zmiennych są dostępne dla ZACZYNAĆ blok programu AWK. -fa plik programu --plik plik programu Odczytaj źródło programu AWK z pliku plik programu , zamiast z pierwszego argumentu wiersza poleceń. Wielokrotność -fa (lub --plik) Opcje mogą być używane. -mf NNN -Pan NNN Ustaw różne limity pamięci na wartość NNN . The fa flaga ustawia maksymalną liczbę pól i r flaga ustawia maksymalny rozmiar rekordu. Te dwie flagi i -m dostępne są w wersji testowej Bell Laboratories systemu UNIX awk . Są one ignorowane przez gapić się , od gapić się nie ma predefiniowanych limitów. -W compat -W tradycyjnych - compat --tradycyjny Wbiec zgodność tryb. W trybie zgodności gapić się zachowuje się identycznie jak w systemie UNIX awk ; żaden z rozszerzeń specyficznych dla GNU nie jest rozpoznawany. Sposób użycia --tradycyjny jest preferowany w stosunku do innych form tej opcji. Widzieć ROZSZERZENIE GNUponiżej, aby uzyskać więcej informacji. -W copyleft -W prawach autorskich --copyleft --Prawo autorskie Wydrukuj krótką wersję komunikatu o prawach autorskich GNU na standardowym wyjściu i zakończ pomyślnie. -W Dump-variables= plik --dump-variables= plik Wydrukuj posortowaną listę zmiennych globalnych, ich typy i wartości końcowe plik . Jeśli nie plik jest zapewniony, gapić się używa pliku o nazwie awkvars.out w bieżącym katalogu. Posiadanie listy wszystkich zmiennych globalnych jest dobrym sposobem na wyszukiwanie błędów typograficznych w twoich programach. Można również użyć tej opcji, jeśli masz duży program z wieloma funkcjami i chcesz mieć pewność, że twoje funkcje nieumyślnie wykorzystują zmienne globalne, które miały być lokalne. (Jest to szczególnie łatwy błąd przy użyciu prostych nazw zmiennych, takich jak ja, jot, i tak dalej.) -W pomocy -W użycie --Wsparcie --stosowanie Wydrukuj stosunkowo krótkie podsumowanie dostępnych opcji na standardowym wyjściu. (Na Standardy kodowania GNU , te opcje powodują natychmiastowe, pomyślne zakończenie). -W lint= śmiertelne --szarpie= śmiertelne Dostarczaj ostrzeżenia o konstrukcjach wątpliwych lub nieprzenośnych dla innych implementacji systemu. Z opcjonalnym argumentem fatalnyostrzeżenia o lintach stają się fatalnymi błędami. Może to być drastyczne, ale jego użycie z pewnością zachęci do opracowania czystszych programów AWK. -W lint-old - stary-stary Podaj ostrzeżenia o konstrukcjach, które nie są przenośne dla oryginalnej wersji systemu Unix awk . -W gen-po --gen-po Zeskanuj i przeanalizuj program AWK i wygeneruj GNU .po plik formatu na standardowe wyjście z wpisami dla wszystkich możliwych do zlokalizowania ciągów w programie. Sam program nie jest wykonywany. Zobacz GNU gettext dystrybucja, aby uzyskać więcej informacji na temat .po pliki. -W Dane inne niż dziesiętne - dane-dziesiętne Rozpoznawanie wartości ósemkowych i szesnastkowych w danych wejściowych. Używaj tej opcji z dużą ostrożnością! -W posix --posix To się włącza zgodność w trybie z następującymi dodatkowymi ograniczeniami: * x sekwencje ucieczki nie są rozpoznawane. * Tylko spacja i tabulacja działają jako separatory pól FS jest ustawione na pojedynczą spację, newline nie. * Nie możesz kontynuować linii po ? i :. * Synonim func dla słowa kluczowego funkcjonować jest nie rozpoznany. * Operatorzy ** i **= nie mogą być używane zamiast ^ i ^=. * The fflush () funkcja nie jest dostępna. -W profil= prof_file --profil= prof_file Wyślij dane profilowania do prof_file . Wartość domyślna to awkprof.out. Po uruchomieniu z gapić się profil jest po prostu "dość drukowaną" wersją programu. Po uruchomieniu z pgawk , profil zawiera liczby wykonań każdej instrukcji w programie na lewym marginesie oraz liczby wywołań funkcji dla każdej funkcji zdefiniowanej przez użytkownika. -W ponownie interwał --re-interval Włącz korzystanie z wyrażenia interwałowe w dopasowaniu wyrażenia regularnego (patrz Wyrażenia regularneponiżej). Wyrażenia interwałowe nie były tradycyjnie dostępne w języku AWK. Do tego dodano standard POSIX awk i egrep zgodne ze sobą. Jednak ich użycie prawdopodobnie zepsuje stare programy AWK, więc gapić się zapewnia je tylko wtedy, gdy są żądane z tą opcją lub kiedy --posix jest specyficzne. -W źródło tekst programu --źródło tekst programu Posługiwać się tekst programu jako kod źródłowy programu AWK. Ta opcja pozwala na łatwe wymieszanie funkcji bibliotecznych (używanych przez -fa i --plik opcje) z kodem źródłowym wprowadzonym w linii poleceń. Jest przeznaczony głównie dla średnich i dużych programów AWK używanych w skryptach powłoki. -W wersja --wersja Wydrukuj informacje o wersji dla tej konkretnej kopii gapić się na standardowym wyjściu. Przydaje się to głównie do sprawdzenia, czy aktualna kopia gapić się w systemie jest aktualny w odniesieniu do dystrybucji Free Software Foundation. Jest to również przydatne przy zgłaszaniu błędów. (Na Standardy kodowania GNU , te opcje powodują natychmiastowe, pomyślne zakończenie). -- Sygnalizuj koniec opcji. Jest to użyteczne, aby umożliwić dalsze argumenty do samego programu AWK, aby rozpocząć od `- - ''. Dotyczy to głównie spójności z konwencją przetwarzania argumentów używaną przez większość innych programów POSIX. W trybie zgodności wszystkie inne opcje są oznaczone jako nieprawidłowe, ale w przeciwnym razie są ignorowane. Podczas normalnej pracy, dopóki dostarczony jest tekst programu, nieznane opcje są przekazywane do programu AWK w pliku ARGV tablica do przetwarzania. Jest to szczególnie przydatne przy uruchamianiu programów AWK za pomocą wykonywanego interpretera `` #! ''. WYKONANIE PROGRAMU AWK Program AWK składa się z sekwencji instrukcji typu pattern-action i opcjonalnych definicji funkcji. wzór { wyciągi z akcji }funkcjonować imię ( lista parametrów ) { sprawozdania }
Gapić się najpierw odczytuje źródło programu z pliku plik programu (s) jeśli jest określony, od argumentów do --źródłolub od pierwszego nie będącego opcją argumentu w wierszu poleceń. The -fa i --źródło Opcje mogą być używane wielokrotnie w wierszu poleceń. Gapić się czyta tekst programu tak, jakby wszystkie plik programu s i teksty źródłowe wiersza poleceń zostały połączone razem. Jest to przydatne do budowania bibliotek funkcji AWK, bez konieczności włączania ich do każdego nowego programu AWK, który je wykorzystuje. Zapewnia także możliwość mieszania funkcji biblioteki z programami wiersza poleceń. Zmienna środowiskowa AWKPATH określa ścieżkę wyszukiwania, która będzie używana podczas wyszukiwania plików źródłowych o nazwach z -fa opcja. Jeśli ta zmienna nie istnieje, domyślną ścieżką jest".: / usr / local / share / awk". (Rzeczywisty katalog może się różnić w zależności od sposobu gapić się został zbudowany i zainstalowany.) Jeśli nazwa pliku została podana -fa opcja zawiera znak `` / '', nie jest wykonywane wyszukiwanie ścieżki. Gapić się wykonuje programy AWK w następującej kolejności. Po pierwsze, wszystkie przypisania zmiennych określone przez -v opcje są wykonywane. Kolejny, gapić się kompiluje program do postaci wewnętrznej. Następnie, gapić się wykonuje kod w ZACZYNAĆ blok (y) (jeśli istnieje), a następnie przechodzi do odczytu każdego pliku wymienionego w ARGV szyk. Jeśli w wierszu poleceń nie ma plików o nazwach, gapić się czyta standardowe wejście. Jeśli nazwa pliku w wierszu poleceń ma postać var = val traktowane jest jako przypisanie zmiennych. Zmienna var zostanie przypisana wartość val . (Dzieje się to po dowolnym ZACZYNAĆ blok (y) zostały uruchomione.) Przypisanie zmiennych linii poleceń jest najbardziej użyteczne w dynamicznym przypisywaniu wartości do zmiennych używanych przez AWK do kontrolowania sposobu dzielenia danych wejściowych na pola i rekordy. Jest także przydatny do kontrolowania stanu, jeśli potrzeba więcej niż jednego przebiegu w jednym pliku danych. Jeśli wartość konkretnego elementu ARGV jest pusty (''), gapić się przeskakuje nad nim. Dla każdego rekordu na wejściu, gapić się sprawdza, czy pasuje do któregokolwiek wzór w programie AWK. Dla każdego wzorca, który pasuje do rekordu, skojarzony akcja jest wykonywany. Wzorce są testowane w kolejności, w jakiej występują w programie. Wreszcie, po wyczerpaniu wszystkich danych wejściowych, gapić się wykonuje kod w KONIEC blok (y) (jeśli występują). Zmienne AWK są dynamiczne; powstają, gdy są po raz pierwszy użyte. Ich wartości są liczbami zmiennoprzecinkowymi lub łańcuchami lub obydwoma, w zależności od sposobu ich użycia. AWK ma również jednowymiarowe tablice; tablice o wielu wymiarach mogą być symulowane. Kilka wstępnie zdefiniowanych zmiennych jest ustawianych w trakcie działania programu; zostaną one opisane jako potrzebne i podsumowane poniżej. Zwykle rekordy są oddzielone znakami nowej linii. Możesz kontrolować sposób oddzielania rekordów, przypisując wartości do wbudowanej zmiennej RS. Jeśli RS to dowolny pojedynczy znak, który oddziela rekordy. Inaczej, RS jest wyrażeniem regularnym. Tekst na wejściu pasującym do tego wyrażenia regularnego oddziela rekord. Jednak w trybie zgodności tylko pierwszy znak wartości ciągu służy do rozdzielania rekordów. Jeśli RS jest ustawiony na łańcuch pusty, a następnie rekordy są oddzielone pustymi liniami. Gdy RS jest ustawiony na łańcuch zerowy, znak nowej linii zawsze działa jako separator pól, niezależnie od dowolnej wartości FS może mieć. Po odczytaniu każdego rekordu wejściowego, gapić się dzieli rekord na pola , używając wartości FS zmienna jako separator pól. Jeśli FS jest pojedynczym znakiem, pola są oddzielone przez tę postać. Jeśli FS jest łańcuchem pustym, wtedy każda indywidualna postać staje się oddzielnym polem. Inaczej, FS ma być pełnym wyrażeniem regularnym. W szczególnym przypadku, że FS jest pojedynczą spacją, pola są oddzielone ciągami spacji i / lub tabulatorów i / lub znaków nowej linii. (Ale zobacz dyskusję --posixponiżej). UWAGA: Wartość IGNORECASE (patrz poniżej) wpływa również na sposób podziału pól, gdy FS jest wyrażeniem regularnym i w jaki sposób rekordy są rozdzielane, kiedy RS jest wyrażeniem regularnym. Jeśli FIELDWIDTHS zmienna jest ustawiona na rozdzieloną spacjami listę liczb, każde pole ma mieć stałą szerokość, oraz gapić się dzieli rekord na określone szerokości. Wartość FS jest ignorowany. Przypisywanie nowej wartości do FS zastępuje użycie FIELDWIDTHSi przywraca domyślne zachowanie. Do każdego pola w rekordzie wejściowym może się odnosić jego pozycja, $1, $2, i tak dalej. $0 jest cały rekord. Do pól nie muszą się odnosić stałe: n = 5wydrukuj $ n drukuje piąte pole w rekordzie wejściowym. Zmienna NF jest ustawiona na całkowitą liczbę pól w rekordzie wejściowym. Odniesienia do nieistniejących pól (tj. Pól po $ NF) wytwarzają łańcuch zerowy. Jednak przypisywanie do nieistniejącego pola (np. $ (NF + 2) = 5) zwiększa wartość NF, tworzy wszelkie interweniujące pola z pustym łańcuchem jako ich wartością i powoduje, że wartość wynosi $0 być przeliczone, a pola są oddzielone wartością OFS. Odwołania do pól o numerach ujemnych powodują błąd krytyczny. Zmniejszanie NF powoduje utratę wartości pól za nową wartością oraz wartość $0 być przeliczone, a pola są oddzielone wartością OFS. Przypisanie wartości do istniejącego pola powoduje, że cały rekord zostanie odbudowany, kiedy $0 jest odwołany. Podobnie przypisywanie wartości do $0 powoduje, że nagranie jest resplit, tworząc nowe wartości dla pól. Gapić się Wbudowane zmienne to: ARGC Liczba argumentów wiersza poleceń (nie zawiera opcji do gapić się lub źródło programu). ARGIND Indeks w ARGV bieżącego przetwarzanego pliku. ARGV Tablica argumentów wiersza poleceń. Tablica jest indeksowana od 0 do ARGC - 1. Dynamiczna zmiana zawartości ARGV może kontrolować pliki używane do danych. BINMODE W systemach innych niż POSIX określa użycie trybu "binarnego" dla wszystkich operacji we / wy pliku. Wartości numeryczne 1, 2 lub 3 określają, że pliki wejściowe, pliki wyjściowe lub wszystkie pliki powinny wykorzystywać binarne operacje we / wy. Wartości ciągu znaków "r", lub "w" należy określić, że pliki wejściowe lub pliki wyjściowe powinny używać binarnych operacji we / wy. Wartości ciągu znaków "rw" lub "wr" określ, że wszystkie pliki powinny używać binarnych operacji we / wy. Każda inna wartość ciągu jest traktowana jako "rw", ale generuje komunikat ostrzegawczy. CONVFMT Format konwersji liczb, "% .6g", domyślnie. OTACZAĆ Tablica zawierająca wartości bieżącego środowiska. Tablica jest indeksowana przez zmienne środowiskowe, przy czym każdy element jest wartością tej zmiennej (np.ENVIRON "HOME" może być / home / arnold). Zmiana tej tablicy nie ma wpływu na środowisko widziane przez programy, które gapić się spawns przez przekierowanie lub system()funkcjonować. ERRNO Jeśli wystąpi błąd systemowy, wykonaj przekierowanie dla getlinepodczas czytania dla getlinelub podczas blisko(), następnie ERRNO będzie zawierać ciąg opisujący błąd. Wartość podlega tłumaczeniu w językach innych niż angielski. FIELDWIDTHS Rozdzielona spacjami biała lista szerokości pól. Po ustawieniu gapić się analizuje dane wejściowe w polach o stałej szerokości, zamiast używać wartości zmiennej FS zmienna jako separator pól. NAZWA PLIKU Nazwa bieżącego pliku wejściowego.Jeśli w wierszu poleceń nie podano żadnych plików, wartość NAZWA PLIKU to `` - ''. Jednak, NAZWA PLIKU jest niezdefiniowany wewnątrz ZACZYNAĆ blok (chyba że ustawiono przez getline). FNR Numer rekordu wejściowego w bieżącym pliku wejściowym. FS Separator pól wejściowych, spacja domyślnie. Widzieć Pola, powyżej. IGNORECASE Kontroluje wielkość liter wszystkich operacji wyrażeń regularnych i łańcuchowych. Jeśli IGNORECASE ma wartość niezerową, a następnie porównywanie ciągów i dopasowywanie wzorców w regułach, dzielenie pól na FS, rekord oddzielający się od RS, wyrażenie regularne pasujące do ~i !~i gensub (), gsub (), indeks(), mecz(), rozdzielać(), i pod() wbudowane funkcje ignorują wielkość liter podczas wykonywania operacji na wyrażeniach regularnych. UWAGA: Uzupełnienie tablicy to nie dotknięte, ani nie jest rodzaj() funkcjonować. Tak więc, jeśli IGNORECASE nie jest równe zeru, / aB / dopasowuje wszystkie ciągi "ab", "aB","Ab", i "AB". Podobnie jak w przypadku wszystkich zmiennych AWK, wartość początkowa IGNORECASE wynosi zero, więc wszystkie wyrażenia regularne i operacje na łańcuchach są zwykle rozróżniane. W systemie Unix do ignorowania przypadku wykorzystywany jest pełny zestaw znaków Latin-1 ISO 8859-1. SZARPIE Zapewnia dynamiczną kontrolę --szarpie opcja z programu AWK. Kiedy prawda, gapić się drukuje ostrzeżenia o kłaczkach. Kiedy jest fałszywe, nie ma. Po przypisaniu wartości ciągu "fatalny"ostrzeżenia o lintach stają się fatalnymi błędami, dokładnie takimi jak --lint = fatal. Każda inna wartość prawdziwa wyświetla ostrzeżenia. NF Liczba pól w bieżącym rekordzie wejściowym. NR Całkowita liczba rekordów wejściowych do tej pory. OFMT Format wyjściowy liczb, "% .6g", domyślnie. OFS Wyjściowy separator pól, domyślnie spacja. ORS Separator rekordów wyjściowych, domyślnie znak nowej linii. PROCINFO Elementy tej tablicy zapewniają dostęp do informacji o uruchomionym programie AWK. W niektórych systemach mogą znajdować się elementy w tablicy, "Grupa 1" przez "Grupa n ' dla niektórych n , która jest liczbą dodatkowych grup, które proces ma. Użyj w operator, aby przetestować te elementy. Gwarantujemy dostępność następujących elementów: PROCINFO "egid" wartość getegid (2) wywołanie systemowe. PROCINFO "euid" wartość geteuid (2) wywołanie systemowe. PROCINFO "FS" "FS" jeśli pole dzieli się na FS działa, lub "FIELDWIDTHS" jeśli pole dzieli się na FIELDWIDTHS jest w rzeczywistości. PROCINFO "gid" wartość getgid (2) wywołanie systemowe. PROCINFO "pgrpid" identyfikator grupy procesów bieżącego procesu. PROCINFO "pid" identyfikator procesu bieżącego procesu. PROCINFO "ppid" identyfikator procesu nadrzędnego dla bieżącego procesu. PROCINFO "uid" wartość getuid (2) wywołanie systemowe. RS Separator rekordów wejściowych, domyślnie nowy znak. RT Rekordowy terminator. Gapić się zestawy RT do tekstu wejściowego pasującego do znaku lub wyrażenia regularnego określonego przez RS. RSTART Indeks pierwszego znaku pasujący do mecz(); 0, jeśli nie pasuje. (To oznacza, że indeksy postaci zaczynają się od jednego.) RLENGTH Długość ciągu pasującego do mecz(); -1 jeśli nie pasuje. SUBSEP Znak używany do oddzielnego wielokrotnego indeksowania w elementach tablicy, domyślnie ' 034'. TEXTDOMAIN Domena tekstowa programu AWK; służy do znajdowania zlokalizowanych tłumaczeń ciągów programu. Tablice są indeksowane za pomocą wyrażenia w nawiasach kwadratowych ( i ). Jeśli wyrażenie jest listą wyrażeń ( expr , expr …), wówczas indeks tablicy jest ciągiem składającym się z konkatenacji wartości (łańcucha) każdego wyrażenia, oddzielone wartością SUBSEP zmienna. Ta funkcja służy do symulacji tablic o wielowymiarowych wymiarach. Na przykład: i = "A"; j = "B"; k = "C"x i, j, k = "cześć, świat n" przydziela ciąg znaków "cześć, świat n" do elementu tablicy x który jest indeksowany przez ciąg"A 034B 034C". Wszystkie tablice w AWK są asocjacyjne, tzn. Indeksowane przez wartości łańcuchowe. Specjalny operator w może być użyty w Jeśli lub podczas instrukcja, aby sprawdzić, czy tablica ma indeks składający się z określonej wartości. jeśli (val in array) wydrukuj tablicę val Jeśli tablica ma wiele indeksów dolnych, użyj (i, j) w tablicy. The w konstrukcja może być również używana w dla Pętla do iteracji po wszystkich elementach tablicy. Element może zostać usunięty z tablicy za pomocą kasować komunikat. The kasować Instrukcja statement może być również używana do usuwania całej zawartości tablicy, po prostu przez określenie nazwy tablicy bez indeksu dolnego. Zmienne i pola mogą być liczbami (zmiennoprzecinkowymi) lub łańcuchami lub obydwoma. Sposób interpretowania wartości zmiennej zależy od jej kontekstu. Jeśli zostanie użyte w wyrażeniu liczbowym, będzie traktowane jako liczba, jeśli zostanie użyte jako ciąg znaków, będzie traktowane jako ciąg znaków. Aby wymusić traktowanie zmiennej jako liczby, dodaj do niej 0; aby zmusić go do traktowania jako ciąg, połącz go łańcuchem pustym. Kiedy ciąg musi zostać przekonwertowany na liczbę, konwersja zostanie zakończona za pomocą strtod (3). Liczba jest konwertowana na ciąg znaków przy użyciu wartości CONVFMT jako ciąg formatu dla sprintf (3), z wartością numeryczną zmiennej jako argumentem. Jednak pomimo tego, że wszystkie liczby w AWK są zmiennoprzecinkowe, wartości integralne są zawsze skonwertowane jako liczby całkowite. Tak więc, biorąc pod uwagę CONVFMT = "% 2.2f" a = 12 b = a "" zmienna b ma wartość ciągu znaków '12' i nie '12.00'. Gapić się przeprowadza porównania w następujący sposób: Jeśli dwie zmienne są liczbowe, są one porównywane numerycznie. Jeśli jedna wartość jest numeryczna, a druga ma wartość łańcuchową, która jest "ciągiem liczbowym", wówczas porównania są również wykonywane numerycznie. W przeciwnym razie wartość liczbowa jest konwertowana na ciąg znaków i wykonywane jest porównanie łańcuchów. Dwa ciągi są porównywane, oczywiście, jako struny. Zwróć uwagę, że standard POSIX stosuje wszędzie pojęcie "łańcucha numerycznego", nawet do stałych łańcuchowych. Jest to jednak wyraźnie niepoprawne, i gapić się nie robi tego. (Na szczęście jest to poprawione w następnej wersji standardu.) Zwróć uwagę, że stałe łańcuchowe, takie jak '57', są nie łańcuchy liczbowe, są to stałe łańcuchowe. Idea "ciągu numerycznego" odnosi się tylko do pól, getline wkład, NAZWA PLIKU, ARGV elementy, OTACZAĆ elementy i elementy tablicy utworzonej przez rozdzielać() są to ciągi liczbowe. Podstawową ideą jest to, że dane wejściowe użytkownika i tylko dane wejściowe użytkownika, które wyglądają na liczbowe, powinny być traktowane w ten sposób. Niezainicjowane zmienne mają wartość liczbową 0 i ciąg znaków "" (pusty lub pusty łańcuch). Począwszy od wersji 3.1 gawk, możesz używać ósemkowych i szesnastkowych stałych w stylu C w kodzie źródłowym programu AWK. Na przykład wartość ósemkowa 011 jest równy dziesiętnym 9i wartość szesnastkowa 0x11 jest równy liczbie dziesiętnej 17. Stałe ciągowe w AWK są ciągami znaków ujętymi między podwójnymi cudzysłowami ('). W ciągu ciągów, pewne Sekwencje ewakuacyjne są rozpoznawane, jak w C. Są to: \ Dosłowny ukośnik odwrotny. za Znak `` alert ''; zazwyczaj znak ASCII BEL.
backspace. fa Form-Feed. n Nowa linia. r powrót karetki. t zakładka pozioma. v pionowa zakładka. x cyfry szesnastkowe Znak reprezentowany przez ciąg cyfr szesnastkowych po znaku x. Podobnie jak w ANSIC, wszystkie następujące cyfry szesnastkowe są uważane za część sekwencji ucieczki. (Ta funkcja powinna nam powiedzieć coś na temat projektowania języka przez komisję.), " x1B" jest znakiem ASCIIESC (escape). ddd Znak reprezentowany przez 1-, 2- lub 3-cyfrową sekwencję cyfr ósemkowych. Na przykład., ' 033' jest znakiem ESC (escape) ASCII. do Dosłowny charakter do . Sekwencje specjalne mogą być również używane wewnątrz stałych wyrażeń regularnych (np./ t f n r v / dopasowuje znaki białych znaków). W trybie zgodności znaki reprezentowane przez ósemkowe i szesnastkowe sekwencje specjalne traktowane są dosłownie, gdy są używane w stałych wyrażeniach regularnych. A zatem, / a 52b / jest równa/ a * b /. AWK jest językiem liniowym. Wzór jest najważniejszy, a następnie działanie. Instrukcje akcji są zawarte w { i }. Może brakować wzoru lub może brakować akcji, ale oczywiście nie obie. Jeśli brakuje wzorca, akcja jest wykonywana dla każdego rekordu wejścia. Brakujące działanie jest równoważne {print} który drukuje cały rekord. Komentarze zaczynają się od znaku "#" i kontynuują do końca linii. Do oddzielenia wyciągów można użyć pustych linii. Zwykle instrukcja kończy się znakiem nowej linii, jednak nie jest tak w przypadku linii kończących się na ``, '', {, ?, :, &&, lub ||. Linie kończące się robić lub jeszcze również ich instrukcje są automatycznie kontynuowane w następującym wierszu. W innych przypadkach można kontynuować linię kończąc ją znakiem ", w którym to przypadku znak nowej linii zostanie zignorowany. Wiele instrukcji można umieścić w jednym wierszu, oddzielając je od ``; ''. Odnosi się to zarówno do instrukcji w części akcji pary wzorcowo-akcji (zwykły przypadek), jak i do samych instrukcji wzorca. Wzorce AWK mogą być jednym z następujących: ZACZYNAĆ KONIEC / Wyrażenie regularne / wyrażenie relacyjne wzór && wzór wzór || wzór wzór ? wzór : wzór ( wzór ) ! wzór pattern1 , pattern2 ZACZYNAĆ i KONIEC są dwa specjalne rodzaje wzorów, które nie są testowane na podstawie danych wejściowych. Części akcji wszystkich ZACZYNAĆ Wzory są scalane tak, jakby wszystkie zdania zostały napisane w jednym ZACZYNAĆ blok. Są wykonywane przed odczytaniem dowolnego wejścia. Podobnie, wszystkie KONIEC bloki są scalane i wykonywane po wyczerpaniu wszystkich danych wejściowych (lub gdy wyjście instrukcja jest wykonana). ZACZYNAĆ i KONIEC Wzory nie mogą być łączone z innymi wzorcami we wzorcach wyrażeń. ZACZYNAĆ i KONIEC wzory nie mogą mieć brakujących części akcji. Dla / Wyrażenie regularne / wzorce, powiązana instrukcja jest wykonywana dla każdego rekordu wejściowego pasującego do wyrażenia regularnego. Wyrażenia regularne są takie same jak w egrep (1) i są podsumowane poniżej. ZA wyrażenie relacyjne mogą korzystać z dowolnych operatorów określonych poniżej w sekcji dotyczącej działań. Generalnie sprawdzają, czy określone pola pasują do określonych wyrażeń regularnych. The &&, ||, i ! operatory są logiczne AND, logiczne OR i logiczne NOT odpowiednio jak w C. Wykonują ocenę zwarcia, również jak w C, i są używane do łączenia bardziej prymitywnych wyrażeń wzoru. Jak w większości języków, nawiasy mogą być używane do zmiany kolejności oceny. The ?: operator jest jak ten sam operator w C. Jeśli pierwszy wzór jest prawdziwy, to wzór używany do testowania jest drugim wzorcem, w przeciwnym razie jest trzecim. Oceniany jest tylko jeden z drugiego i trzeciego wzoru. The pattern1 , pattern2 forma wyrażenia nazywana jest a wzór zasięgu . Dopasowuje wszystkie rekordy wejściowe zaczynając od rekordu, który pasuje pattern1 i kontynuowanie aż do rekordu, który pasuje pattern2 , włącznie. Nie łączy się z żadnym innym rodzajem wyrażenia wzoru. Wyrażenia regularne są rozszerzonym rodzajem w egrep . Składają się z postaci w następujący sposób: do dopasowuje non-metaznak do . do dopasowuje literalną postać do . . dopasowuje dowolny znak włącznie z Nowa linia. ^ dopasowuje początek łańcucha. $ dopasowuje koniec łańcucha. ABC… lista znaków, dopasowuje dowolny ze znaków ABC… . ^ ABC… negowana lista znaków, pasuje do dowolnego znaku z wyjątkiem ABC… . r1 | r2 alternacja: dopasowuje albo r1 lub r2 . r1r2 konkatenacja: mecze r1 , i wtedy r2 . r + pasuje do jednego lub więcej r . r * dopasowuje zero lub więcej r . r ? dopasowuje zero lub jeden r . ( r ) grupowanie: mecze r . r { n } r { n ,} r { n , m } Jedna lub dwie liczby wewnątrz nawiasów oznaczają wyrażenie interwałowe . Jeśli w nawiasach występuje jedna liczba, poprzednie wyrażenie regularne r jest powtorzone n czasy. Jeśli istnieją dwie liczby oddzielone przecinkiem, r jest powtorzone n do m czasy. Jeśli jest tam jeden numer, po którym następuje przecinek, to r powtarza się co najmniej n czasy. Wyrażenia interwałowe są dostępne tylko jeśli --posix lub --re-interval jest określony w wierszu poleceń. y dopasowuje pusty ciąg na początku lub na końcu słowa. B dopasowuje pusty ciąg w obrębie słowa. < dopasowuje pusty ciąg na początku słowa. > dopasowuje pusty łańcuch na końcu słowa. w dopasowuje dowolną postać tworzącą słowa (litera, cyfra lub podkreślenie). W dopasowuje dowolny znak, który nie jest słowotwórczy. ` dopasowuje pusty łańcuch na początku bufora (łańcucha). ' dopasowuje pusty łańcuch na końcu bufora. Sekwencje specjalne, które są poprawne w stałych łańcuchowych (patrz poniżej), są również poprawne w wyrażeniach regularnych. Klasy postaci to nowa funkcja wprowadzona w standardzie POSIX. Klasa postaci jest specjalną notacją opisującą listy znaków, które mają określony atrybut, ale gdzie same rzeczywiste znaki mogą się różnić w zależności od kraju i / lub od zestawu znaków do zestawu znaków. Na przykład pojęcie, czym jest alfabetyczny znak, różni się w USA i we Francji. Klasa postaci jest poprawna tylko w wyrażeniu regularnym wewnątrz nawiasy listy znaków. Klasy postaci składają się z :, słowo kluczowe oznaczające klasę, oraz :. Klasy znaków zdefiniowane przez standard POSIX to: : alnum: Znaki alfanumeryczne. :alfa: Znaki alfabetu. :pusty: Znaki spacji lub tabulatorów. : cntrl: Kontroluj postacie. :cyfra: Znaki numeryczne. :wykres: Znaki, które można drukować i wyświetlać. (Przestrzeń można wydrukować, ale nie jest widoczna, podczas gdy za jest zarówno.) :niższy: Małe litery alfabetu. :wydrukować: Znaki drukowalne (znaki, które nie są znakami kontrolnymi). : punct: Znaki interpunkcyjne (znaki niebędące literami, cyframi, znakami sterującymi ani znakami spacji). :przestrzeń: Znaki spacji (takie jak spacja, tabulatory i formfeed, aby wymienić tylko kilka). :górny: Wielkie litery znaków alfabetu. : xdigit: Znaki będące cyframi szesnastkowymi. Na przykład, przed standardem POSIX, aby dopasować znaki alfanumeryczne, musiałbyś napisać / A-Za-z0-9 /. Jeśli twój zestaw znaków zawierałby inne znaki alfabetu, to nie byłby on zgodny z nimi, a jeśli zestaw znaków byłby inaczej zestawiony z ASCII, może to nawet nie pasować do znaków alfanumerycznych ASCII. Dzięki klasom znaków POSIX możesz pisać/ : alnum: /, a to pasuje do alfabetu i znaków numerycznych w twoim zestawie znaków. Dwie dodatkowe sekwencje specjalne mogą pojawiać się na listach znaków. Mają one zastosowanie do zestawów znaków spoza ASCII, które mogą mieć pojedyncze symbole (tzw zestawianie elementów ), które są reprezentowane przez więcej niż jeden znak, a także kilka znaków, które są równoważne zestawianie lub sortowanie. (Np. W języku francuskim zwykły "e" i "akcentowany" e` są równoważne.) Sortowanie symboli Symbolem porównywania jest wieloznakowy element sortujący zawarty w . i .. Na przykład, jeśli ch to jest element porównywania .ch. jest wyrażeniem regularnym, które pasuje do tego elementu zestawienia, podczas gdy ch jest wyrażeniem regularnym pasującym do każdego z nich do lub h. Klasy równoważności Klasa równoważności jest nazwą specyficzną dla ustawień narodowych dla listy znaków, które są równoważne. Nazwa jest zawarta w = i =. Na przykład nazwa mi może być użyte do reprezentowania wszystkich `` e, '' `` e ',' 'i `` e`.' 'W tym przypadku = e = jest wyrażeniem regularnym pasującym do dowolnego z mi, mi', lub e`. Funkcje te są bardzo cenne w lokalizacjach nieanglojęzycznych. Biblioteka to spełnia gapić się używa do dopasowywania wyrażeń regularnych obecnie tylko rozpoznaje klasy znaków POSIX; nie rozpoznają symboli zestawienia ani klas równoważności. The y, B, <, >, w, W, `, i ' operatorzy są specyficzne dla gapić się ; są rozszerzeniami opartymi na obiektach w bibliotekach regularnych wyrażeń GNU. Różne opcje linii poleceń kontrolują sposób gapić się interpretuje znaki w wyrażeniach regularnych. Brak opcji W domyślnym przypadku gapić się zapewnia wszystkie funkcje wyrażeń regularnych POSIX i operatorów wyrażeń regularnych GNU opisanych powyżej. Wyrażenia interwałowe nie są jednak obsługiwane. --posix Obsługiwane są tylko wyrażenia regularne POSIX, operatory GNU nie są specjalne. (Na przykład., w dopasowuje literał w). Interwałowe wyrażenia są dozwolone. --tradycyjny Tradycyjny Unix awk wyrażeń regularnych są dopasowane. Operatory GNU nie są specjalne, wyrazy interwałów nie są dostępne, podobnie jak klasy znaków POSIX (: alnum: i tak dalej). Znaki opisane przez ósemkowe i szesnastkowe sekwencje specjalne traktowane są dosłownie, nawet jeśli reprezentują metaznaki wyrażenia regularnego. --re-interval Zezwalaj na wyrażenia regularne w wyrażeniach regularnych, nawet jeśli --tradycyjny dostarczono. Instrukcje akcji są zawarte w nawiasach klamrowych, { i }. Instrukcje akcji składają się ze zwykłych instrukcji przypisania, warunkowych i pętli znalezionych w większości języków. Operatory, instrukcje sterujące i dostępne instrukcje wejścia / wyjścia są wzorowane na wzorcach w C. Operatory w AWK, w kolejności malejącego pierwszeństwa, są (…) Grupowanie $ Odniesienie do pola. ++ -- Przyrost i dekrementacja, zarówno przedrostek, jak i przyrostek. ^ Potęgowanie (** mogą być również używane, i **= dla operatora przypisania). + - ! Jednoargumentowy plus, jednoargumentowy minus i logiczna negacja. * / % Mnożenie, dzielenie i moduł. + - Dodawanie i odejmowanie. przestrzeń Łączenie ciągów. < > <= >= != == Regularni operatorzy relacyjni. ~ !~ Dopasowanie do wyrażenia regularnego, dopasowanie zanegowane. UWAGA: Nie używaj stałego wyrażenia regularnego (/bla/) po lewej stronie ~ lub !~. Używaj tylko jednego po prawej stronie. Ekspresja / foo / ~ exp ma takie samo znaczenie jak ((0 $ / foo /) ~ exp ). Zazwyczaj tak jest nie co było zamierzone. w Członkostwo w macierzy. && Logiczne AND. || Logiczna OR. ?: Wyrażenie warunkowe C. To ma formę expr1 ? expr2 : expr3 . Jeśli expr1 jest prawdą, wartość wyrażenia jest expr2 inaczej jest expr3 . Tylko jeden z expr2 i expr3 jest oceniany. = += -= *= /= %= ^= Zadanie. Oba zadania absolutne ( var = wartość ) oraz przypisanie operatora (pozostałe formularze) są obsługiwane. Instrukcje kontroli są następujące: Jeśli ( stan ) komunikat jeszcze komunikat podczas ( stan ) komunikat robić komunikat podczas ( stan ) dla ( expr1 ; expr2 ; expr3 ) komunikat dla ( var w szyk ) komunikat złamać dalej kasować szyk indeks kasować szyk wyjście wyrażenie { sprawozdania } Instrukcje wejścia / wyjścia są następujące: blisko( plik , w jaki sposób ) Zamknij plik, potok lub współproces. Opcjonalne w jaki sposób powinno być używane tylko przy zamykaniu jednego końca dwukierunkowej rury do współprocesu. Musi to być również wartość ciągu "do" lub "z". getline Zestaw $0 od następnego rekordu wejściowego; zestaw NF, NR, FNR. getline < plik Zestaw $0 z następnego rekordu plik ; zestaw NF. getline var Zestaw var od następnego rekordu wejściowego; zestaw NR, FNR. getline var < plik Zestaw var z następnego rekordu plik . dowództwo | getline var Biegać dowództwo wyprowadzanie wyjścia do $0 lub var , jak wyżej. dowództwo | i getline var Biegać dowództwo jako proces współprocesowy wyprowadzający wyjście do $0 lub var , jak wyżej. Współprocesy to gapić się rozbudowa. Kolejny Przerwij przetwarzanie bieżącego rekordu wejściowego. Następny rekord wejściowy jest odczytywany, a przetwarzanie rozpoczyna się od pierwszego wzorca w programie AWK. Po osiągnięciu końca danych wejściowych KONIEC blok (y), jeśli istnieje, są wykonywane. nextfile Przerwij przetwarzanie bieżącego pliku wejściowego. Następny odczyt rekordu wejściowego pochodzi z następnego pliku wejściowego. NAZWA PLIKU i ARGIND są aktualizowane, FNR jest resetowany do 1, a przetwarzanie rozpoczyna się od pierwszego wzorca w programie AWK. Po osiągnięciu końca danych wejściowych KONIEC blok (y), jeśli istnieje, są wykonywane. wydrukować Drukuje bieżący rekord. Rekord wyjściowy jest zakończony wartością ORS zmienna. wydrukować lista-wyrażeń Wyświetla wyrażenia. Każde wyrażenie jest oddzielone wartością OFS zmienna. Rekord wyjściowy jest zakończony wartością ORS zmienna. wydrukować lista-wyrażeń > plik Wyświetla wyrażenia na plik . Każde wyrażenie jest oddzielone wartością OFS zmienna. Rekord wyjściowy jest zakończony wartością ORS zmienna. printf fmt, lista-wyrażeń Formatuj i drukuj. printf fmt, lista-wyrażeń > plik Formatuj i drukuj na plik . system( linia cmd ) Wykonaj polecenie linia cmd i zwraca status wyjścia. (To może nie być dostępne w systemach innych niż POSIX.) fflush ( plik ) Opróżnij wszystkie bufory związane z otwartym plikiem wyjściowym lub potokiem plik . Jeśli plik brakuje, a następnie standardowe wyjście jest przepłukiwane. Jeśli plik jest łańcuchem pustym, wtedy wszystkie otwarte pliki wyjściowe i potoki mają przepełnione bufory. Dodatkowe przekierowania wyjścia są dozwolone wydrukować i printf. wydrukuj … >> plik dołącza wyjście do plik . wydrukuj … | dowództwo pisze na rurze. wydrukuj … | & dowództwo wysyła dane do współprocesu. The getline polecenie zwraca 0 na końcu pliku i -1 w przypadku błędu. Po błędzie, ERRNO zawiera ciąg opisujący problem. UWAGA: Jeśli używasz rury lub współprocesu do getlinelub od wydrukować lub printf w pętli musi posługiwać się blisko() aby utworzyć nowe wystąpienia polecenia. AWK nie zamyka automatycznie rur lub ko-procesów, gdy zwracają EOF. Wersje AWK printf oświadczenie i sprintf () Funkcja (patrz poniżej) akceptuje następujące formaty specyfikacji konwersji: %do Znak ASCII. Jeśli argument użyty dla %do jest numeryczny, traktowany jest jak znak i drukowany. W przeciwnym razie argument przyjmuje się za ciąg znaków i drukowany jest tylko pierwszy znak tego łańcucha. %re, %ja Liczba dziesiętna (część całkowita). % e,% E Liczba zmiennoprzecinkowa formularza - d.dddddde + - dd. The %MI Zastosowania formatu mi zamiast mi. %fa Liczba zmiennoprzecinkowa formularza - ddd.dddddd. % g,% G Posługiwać się %mi lub %fa konwersja, w zależności od tego, która z tych wartości jest krótsza, z pominięciem nieistotnych zer. The%SOL Zastosowania formatu %MI zamiast %mi. % o Niepodpisana liczba ósemkowa (również liczba całkowita). % u Niepodpisana liczba dziesiętna (znowu liczba całkowita). % s Ciąg znaków. % x,% X Niepodpisana liczba szesnastkowa (liczba całkowita). The % X Zastosowania formatu ALFABET zamiastAlfabet. %% Pojedynczy % postać; żaden argument nie jest konwertowany. Opcjonalne dodatkowe parametry mogą znajdować się między % i list kontrolny: liczyć $ Użyj liczyć "argument w tym momencie formatowania. To się nazywa Specyfikacja pozycyjna i jest przeznaczony głównie do użycia w przetłumaczonych wersjach ciągów formatów, a nie w oryginalnym tekście programu AWK. To jest gapić się rozbudowa. - Wyrażenie powinno być wyrównane do lewej w obrębie jego pola. przestrzeń W przypadku konwersji numerycznych poprzedzaj wartości dodatnie spacją i wartości ujemne ze znakiem minus. + Znak plusa, używany przed modyfikatorem szerokości (patrz poniżej), mówi, aby zawsze podawać znak liczby konwersji, nawet jeśli dane do sformatowania są dodatnie. The + zastępuje modyfikator spacji. # Użyj "alternatywnej formy" dla niektórych liter kontrolnych. Dla % o, podaj wiodące zero. Dla % x, i % X, dostarczyć wiodącą 0x lub 0X dla niezerowego wyniku. Dla %mi, %MI, i %fa, wynik zawsze zawiera kropkę dziesiętną. Dla %sol, i %SOL, końcowe zera nie są usuwane z wyniku. 0 Wiodący 0 (zero) działa jak flaga, która wskazuje, że wyjście powinno być wypełnione zerami zamiast spacji. Dotyczy to również nie-numerycznych formatów wyjściowych. Flaga ta ma wpływ tylko wtedy, gdy szerokość pola jest szersza niż wartość do wydrukowania. szerokość Pole należy dopełnić do tej szerokości. Pole jest zwykle wypełnione spacjami. Jeśli 0flaga została użyta, dopełniana zerami. . prec Liczba określająca precyzję użycia podczas drukowania. Dla %mi, %MI, i %faformatów, określa liczbę cyfr, które chcesz wydrukować po prawej stronie separatora dziesiętnego. Dla %sol, i %SOL formatów, określa maksymalną liczbę cyfr znaczących. Dla %re, % o, %ja, % u, % x, i % X formatów, określa minimalną liczbę cyfr do wydrukowania. Dla % s, określa maksymalną liczbę znaków z ciągu, który ma zostać wydrukowany. Dynamika szerokość i prec możliwości ANSI C printf () procedury są obsługiwane. ZA * w miejsce albo szerokość lub prec specyfikacje powodują, że ich wartości są pobierane z listy argumentów do printf lub sprintf (). Aby użyć specyfikatora położenia z dynamiczną szerokością lub precyzją, podaj wartość liczyć $ po * w ciągu formatującym. Na przykład, "% 3 $ * 2 $. * 1 $ s". Podczas wykonywania przekierowania I / O z jednego z nich wydrukować lub printf do pliku lub przez getline z pliku, gapić się rozpoznaje niektóre specjalne nazwy plików wewnętrznie. Te nazwy plików umożliwiają dostęp do otwartych deskryptorów plików gapić się proces macierzysty (zazwyczaj powłoka). Te nazwy plików mogą być również używane w linii poleceń do nadawania nazw plikom danych. Nazwy plików to: / dev / stdin Standardowe wejście. / dev / stdout Standardowe wyjście. / dev / stderr Standardowe wyjście błędów. / dev / fd / n Plik powiązany z otwartym deskryptorem pliku n . Są one szczególnie użyteczne w przypadku komunikatów o błędach. Na przykład: print "Spieprzyłeś to!" > "/ dev / stderr" w przeciwnym razie musiałbyś użyć print "Spieprzyłeś to!" | "cat 1> i 2" Następujące specjalne nazwy plików mogą być używane z |& współoperator do tworzenia połączeń sieciowych TCP / IP. / inet / tcp / lport / rhost / Rport Plik do połączenia TCP / IP na porcie lokalnym lport do zdalnego hosta rhost na zdalnym porcie Rport . Użyj portu 0 aby system wybrał port. / inet / udp / lport / rhost / Rport Podobny, ale używaj UDP / IP zamiast TCP / IP. / inet / raw / lport / rhost / Rport Zarezerwowane do przyszłego użytku. Inne specjalne nazwy plików zapewniają dostęp do informacji o uruchomieniu gapić się proces. Te nazwy plików są teraz przestarzałe. Użyj PROCINFO array, aby uzyskać informacje, które dostarczają. Nazwy plików to: / dev / pid Odczyt tego pliku zwraca identyfikator procesu bieżącego procesu, dziesiętnie, zakończony znakiem nowej linii. / dev / ppid Odczyt tego pliku zwraca identyfikator procesu macierzystego bieżącego procesu, dziesiętnie, zakończony znakiem nowej linii. / dev / pgrpid Odczyt tego pliku zwraca identyfikator grupy procesów bieżącego procesu, dziesiętnie, zakończony znakiem nowej linii. / dev / user Odczyt tego pliku zwraca pojedynczy rekord zakończony znakiem nowej linii. Pola są oddzielone spacjami. $1 jest wartością getuid (2) wywołanie systemowe, $2 jest wartością geteuid (2) wywołanie systemowe, $3 jest wartością getgid (2) wywołanie systemowe, i $4 jest wartością getegid (2) wywołanie systemowe. Jeśli są jakieś dodatkowe pola, są to identyfikatory grup zwrócone przez getgroups (2). Wiele grup może nie być obsługiwanych na wszystkich systemach. AWK ma następujące wbudowane funkcje arytmetyczne: atan2 ( y , x ) Zwraca arcus tangens z y / x w radianach. sałata( expr ) Zwraca cosinus z expr , który jest w radianach. exp ( expr ) Funkcja wykładnicza. int ( expr ) Skraca do liczby całkowitej. log( expr ) Funkcja logarytmu naturalnego. skraj() Zwraca liczbę losową z przedziału od 0 do 1. grzech( expr ) Zwraca sinus expr , który jest w radianach. sqrt ( expr ) Funkcja pierwiastka kwadratowego. srand ( expr ) Używa expr
Opis
Format opcji
Opcje
Zmienne, rekordy i pola
Dokumentacja
Pola
Wbudowane zmienne
Tablice
Zmienne pisanie i konwersja
Stałe ósemkowe i szesnastkowe
Stałe stałe
Wzorce i działania
Wzory
Wyrażenia regularne
działania
Operatorzy
Oświadczenia kontrolne
Instrukcje I / O
Instrukcja printf
Specjalne nazwy plików
Funkcje numeryczne




