File: gawk.info, Node: Top, Next: Foreword3, Up: (dir) General Introduction ******************** This file documents 'awk', a program that you can use to select particular records in a file and perform operations upon them. Copyright (C) 1989, 1991, 1992, 1993, 1996-2005, 2007, 2009-2022 Free Software Foundation, Inc. This is Edition 5.2 of 'GAWK: Effective AWK Programming: A User's Guide for GNU Awk', for the 5.2.1 (or later) version of the GNU implementation of AWK. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with the Invariant Sections being "GNU General Public License", with the Front-Cover Texts being "A GNU Manual", and with the Back-Cover Texts as in (a) below. A copy of the license is included in the section entitled "GNU Free Documentation License". a. The FSF's Back-Cover Text is: "You have the freedom to copy and modify this GNU manual." * Menu: * Foreword3:: Some nice words about this Info file. * Foreword4:: More nice words. * Preface:: What this Info file is about; brief history and acknowledgments. * Getting Started:: A basic introduction to using 'awk'. How to run an 'awk' program. Command-line syntax. * Invoking Gawk:: How to run 'gawk'. * Regexp:: All about matching things using regular expressions. * Reading Files:: How to read files and manipulate fields. * Printing:: How to print using 'awk'. Describes the 'print' and 'printf' statements. Also describes redirection of output. * Expressions:: Expressions are the basic building blocks of statements. * Patterns and Actions:: Overviews of patterns and actions. * Arrays:: The description and use of arrays. Also includes array-oriented control statements. * Functions:: Built-in and user-defined functions. * Library Functions:: A Library of 'awk' Functions. * Sample Programs:: Many 'awk' programs with complete explanations. * Advanced Features:: Stuff for advanced users, specific to 'gawk'. * Internationalization:: Getting 'gawk' to speak your language. * Debugger:: The 'gawk' debugger. * Namespaces:: How namespaces work in 'gawk'. * Arbitrary Precision Arithmetic:: Arbitrary precision arithmetic with 'gawk'. * Dynamic Extensions:: Adding new built-in functions to 'gawk'. * Language History:: The evolution of the 'awk' language. * Installation:: Installing 'gawk' under various operating systems. * Notes:: Notes about adding things to 'gawk' and possible future work. * Basic Concepts:: A very quick introduction to programming concepts. * Glossary:: An explanation of some unfamiliar terms. * Copying:: Your right to copy and distribute 'gawk'. * GNU Free Documentation License:: The license for this Info file. * Index:: Concept and Variable Index. * History:: The history of 'gawk' and 'awk'. * Names:: What name to use to find 'awk'. * This Manual:: Using this Info file. Includes sample input files that you can use. * Conventions:: Typographical Conventions. * Manual History:: Brief history of the GNU project and this Info file. * How To Contribute:: Helping to save the world. * Acknowledgments:: Acknowledgments. * Running gawk:: How to run 'gawk' programs; includes command-line syntax. * One-shot:: Running a short throwaway 'awk' program. * Read Terminal:: Using no input files (input from the keyboard instead). * Long:: Putting permanent 'awk' programs in files. * Executable Scripts:: Making self-contained 'awk' programs. * Comments:: Adding documentation to 'gawk' programs. * Quoting:: More discussion of shell quoting issues. * DOS Quoting:: Quoting in Windows Batch Files. * Sample Data Files:: Sample data files for use in the 'awk' programs illustrated in this Info file. * Very Simple:: A very simple example. * Two Rules:: A less simple one-line example using two rules. * More Complex:: A more complex example. * Statements/Lines:: Subdividing or combining statements into lines. * Other Features:: Other Features of 'awk'. * When:: When to use 'gawk' and when to use other things. * Intro Summary:: Summary of the introduction. * Command Line:: How to run 'awk'. * Options:: Command-line options and their meanings. * Other Arguments:: Input file names and variable assignments. * Naming Standard Input:: How to specify standard input with other files. * Environment Variables:: The environment variables 'gawk' uses. * AWKPATH Variable:: Searching directories for 'awk' programs. * AWKLIBPATH Variable:: Searching directories for 'awk' shared libraries. * Other Environment Variables:: The environment variables. * Exit Status:: 'gawk''s exit status. * Include Files:: Including other files into your program. * Loading Shared Libraries:: Loading shared libraries into your program. * Obsolete:: Obsolete Options and/or features. * Undocumented:: Undocumented Options and Features. * Invoking Summary:: Invocation summary. * Regexp Usage:: How to Use Regular Expressions. * Escape Sequences:: How to write nonprinting characters. * Regexp Operators:: Regular Expression Operators. * Regexp Operator Details:: The actual details. * Interval Expressions:: Notes on interval expressions. * Bracket Expressions:: What can go between '[...]'. * Leftmost Longest:: How much text matches. * Computed Regexps:: Using Dynamic Regexps. * GNU Regexp Operators:: Operators specific to GNU software. * Case-sensitivity:: How to do case-insensitive matching. * Regexp Summary:: Regular expressions summary. * Records:: Controlling how data is split into records. * awk split records:: How standard 'awk' splits records. * gawk split records:: How 'gawk' splits records. * Fields:: An introduction to fields. * Nonconstant Fields:: Nonconstant Field Numbers. * Changing Fields:: Changing the Contents of a Field. * Field Separators:: The field separator and how to change it. * Default Field Splitting:: How fields are normally separated. * Regexp Field Splitting:: Using regexps as the field separator. * Single Character Fields:: Making each character a separate field. * Command Line Field Separator:: Setting 'FS' from the command line. * Full Line Fields:: Making the full line be a single field. * Field Splitting Summary:: Some final points and a summary table. * Constant Size:: Reading constant width data. * Fixed width data:: Processing fixed-width data. * Skipping intervening:: Skipping intervening fields. * Allowing trailing data:: Capturing optional trailing data. * Fields with fixed data:: Field values with fixed-width data. * Splitting By Content:: Defining Fields By Content * More CSV:: More on CSV files. * FS versus FPAT:: A subtle difference. * Testing field creation:: Checking how 'gawk' is splitting records. * Multiple Line:: Reading multiline records. * Getline:: Reading files under explicit program control using the 'getline' function. * Plain Getline:: Using 'getline' with no arguments. * Getline/Variable:: Using 'getline' into a variable.