File: gawk.info, Node: Reading Files, Next: Printing, Prev: Regexp, Up: Top 4 Reading Input Files ********************* In the typical 'awk' program, 'awk' reads all input either from the standard input (by default, this is the keyboard, but often it is a pipe from another command) or from files whose names you specify on the 'awk' command line. If you specify input files, 'awk' reads them in order, processing all the data from one before going on to the next. The name of the current input file can be found in the predefined variable 'FILENAME' (*note Built-in Variables::). The input is read in units called "records", and is processed by the rules of your program one record at a time. By default, each record is one line. Each record is automatically split into chunks called "fields". This makes it more convenient for programs to work on the parts of a record. On rare occasions, you may need to use the 'getline' command. The 'getline' command is valuable both because it can do explicit input from any number of files, and because the files used with it do not have to be named on the 'awk' command line (*note Getline::). * Menu: * Records:: Controlling how data is split into 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. * Constant Size:: Reading constant width data. * Splitting By Content:: Defining Fields By Content * 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. * Read Timeout:: Reading input with a timeout. * Retrying Input:: Retrying input after certain errors. * Command-line directories:: What happens if you put a directory on the command line. * Input Summary:: Input summary. * Input Exercises:: Exercises.