Title and Copyright Information
About This Manual
New and Changed Features
Related Documentation
Reader's Comments
1    Finding Information with Regular Expressions and the grep Command
1.1    Forming Regular Expressions
1.1.1    Basic Regular Expressions
1.1.2    Extended Regular Expressions
1.1.3    Matching Multiple Occurrences of a Regular Expression
1.1.4    Matching Only Selected Characters
1.1.5    Specifying Multiple Regular Expressions
1.1.6    Special Collating Considerations in Regular Expressions
1.2    Using the grep Command
2    Matching Patterns and Processing Information with awk
2.1    Running the awk Program
2.2    Printing in awk
2.3    Using Variables in awk
2.3.1    Simple Variables
2.3.2    Field Variables
2.3.3    Array Variables
2.3.4    Built-In awk Variables
2.4    More About Using Regular Expressions as Patterns
2.5    Using Relational Expressions and Combined Expressions as Patterns
2.6    Using Pattern Ranges
2.7    Actions in awk
2.8    Using Operators in an Action
2.9    Using Functions Within an Action
2.10    Using Control Structures in awk
2.11    Performing Actions Before or After Processing the Input
2.12    Concatenating Strings
2.13    Redirection and Pipes
3    Editing Files with the sed Editor
3.1    Overview of the sed Editor
3.2    Running the sed Editor
3.3    Selecting Lines for Editing
3.4    Summary of sed Commands
3.5    String Replacement
4    Creating Input Language Analyzers and Parsers
4.1    How the Lexical Analyzer Works
4.2    Writing a Lexical Analyzer Program with lex
4.3    The lex Specification File
4.3.1    Defining Substitution Strings
4.3.2    Rules    Regular Expressions    Matching Rules    Using Wildcard Characters to Match a String    Finding Strings Within Strings    Actions    Null Action    Using the Same Action for Multiple Expressions    Printing a Matched String    Finding the Length of a Matched String    Getting More Input    Returning Characters to the Input
4.3.3    Using or Overriding Standard Input/Output Routines
4.3.4    End-of-File Processing
4.3.5    Passing Code to the Generated Program
4.3.6    Start Conditions
4.4    Generating a Lexical Analyzer
4.5    Using lex with yacc
4.6    Creating a Parser with yacc
4.6.1    The main and yyerror Functions
4.6.2    The yylex Function
4.7    The Grammar File
4.7.1    Declarations    Defining Global Variables    Start Symbols    Token Numbers
4.7.2    Grammar Rules    Null String    End-of-Input Marker    Actions in yacc Parsers
4.7.3    Programs
4.7.4    Guidelines for Using Grammar Files    Using Comments    Using Literal Strings    Guidelines for Formatting the Grammar File    Using Recursion in a Grammar File    Errors in the Grammar File
4.7.5    Error Handling by the Parser    Providing for Error Correcting    Clearing the Look-Ahead Token
4.8    Parser Operation
4.8.1    The shift Action
4.8.2    The reduce Action
4.8.3    Ambiguous Rules and Parser Conflicts
4.9    Turning on Debug Mode
4.10    Creating a Simple Calculator Program
4.10.1    Parser Source Code
4.10.2    Lexical Analyzer Source Code
5    Using m4 Macros in Your Programs
5.1    Using Macros
5.2    Defining Macros
5.2.1    Using the Quote Characters
5.2.2    Macro Arguments
5.3    Using Other m4 Macros
5.3.1    Changing the Comment Characters
5.3.2    Changing the Quote Characters
5.3.3    Removing a Macro Definition
5.3.4    Checking for a Defined Macro
5.3.5    Using Integer Arithmetic
5.3.6    Manipulating Files
5.3.7    Redirecting Output
5.3.8    Using System Programs in a Program
5.3.9    Using Unique File Names
5.3.10    Using Conditional Expressions
5.3.11    Manipulating Strings
5.3.12    Printing
6    Revision Control: Managing Source Files with RCS or SCCS
6.1    Overview of Revision Control
6.2    Version Control Concepts
6.3    Managing Multiple Versions of Files
6.4    Creating a Version Control Library
6.5    Using RCS
6.5.1    Placing New Files in an RCS Library
6.5.2    Recording File-Identification Information with RCS
6.5.3    Getting Files from an RCS Library
6.5.4    Checking Edited Files Back into an RCS Library
6.5.5    Working with Multiple Versions of Files
6.5.6    Displaying Differences in RCS Files
6.5.7    Reporting Revision Histories of RCS Files
6.5.8    Configuration Control Concepts
6.6    Using SCCS
6.6.1    Placing New Files in an SCCS Library
6.6.2    Recording File-Identification Information with SCCS
6.6.3    Getting Files from an SCCS Library    Getting Files for Purposes Other Than Editing    Getting Files for Editing    Managing Multiple Files and New Releases
6.6.4    Checking Edited Files Back into an SCCS Library
6.6.5    Working with Multiple Versions of Files
6.6.6    Displaying Differences in SCCS Files
6.6.7    Reporting Revision Histories of SCCS Files
6.6.8    Performing Administrative Functions
6.6.9    Using SCCS Options
6.6.10    Summary of Individual SCCS Commands
6.7    Functional Comparison of RCS and SCCS Commands
7    Building Programs with the make Utility
7.1    Operation of the make Utility
7.2    Description Files
7.2.1    Format of a Description File Entry
7.2.2    Using Commands in a Description File
7.2.3    Preventing the make Utility from Echoing Commands
7.2.4    Preventing the make Utility from Stopping on Errors
7.2.5    Defining Default Conditions
7.2.6    Preventing make from Deleting Files
7.2.7    Simple Description File
7.2.8    Making the Description File Simpler
7.2.9    Defining Macros
7.2.10    Using Macros in a Description File    Macro Substitution    Conditional Macros
7.2.11    Calling the make Utility from a Description File
7.2.12    Internal Macros    Internal Target File Name Macro    Internal Label Name Macro    Internal Younger Files Macro    Internal First Out-of-Date File Macro    Internal Current File Name Prefix Macro
7.2.13    How make Uses Environment Variables
7.2.14    Internal Rules    Single Suffix Rules    Overriding Built-In make Macros
7.2.15    Including Other Files
7.2.16    Testing Description Files
7.2.17    Description File
4-1    Parser Source Code for a Calculator
4-2    Lexical Analyzer Source Code for a Calculator
7-1    A Simple Description File
7-2    Default Rules File
7-3    The makefile for the make Utility
2-1    Sequence of awk Processing
3-1    Sequence of sed Processing
4-1    Simple Finite State Model
4-2    Producing an Input Parser with lex and yacc
6-1    Contents of a Version Control File
6-2    A Typical RCS Library
6-3    A Typical SCCS Library
6-4    A Version Control File's Tree of Deltas
1-1    Rules for Basic Regular Expressions
1-2    Rules for Extended Regular Expressions
1-3    Behavior of the grep Command
1-4    Flags for the grep Command
2-1    Flags for the awk Command
2-2    Built-In Variables in awk
2-3    Operators for awk Actions
2-4    Built-In awk Mathematical Functions
2-5    Built-In awk String Functions
2-6    Built-In awk Miscellaneous Functions
2-7    Control Structures in awk
3-1    Flags for the sed Command
3-2    Special Regular Expressions Recognized by sed
3-3    Text Editing and Movement Commands
3-4    Buffer Manipulation Commands
3-5    Flow-of-Control Commands
4-1    Regular Expression Operators for lex
4-2    Options for the lex Command
4-3    Processing-Condition Definition Keywords in yacc
5-1    Built-In m4 Macros
6-1    Features of RCS and SCCS
6-2    Summary of RCS Command Functions
6-3    RCS ID Keywords
6-4    Summary of sccs Command Functions
6-5    SCCS ID Keywords
6-6    SCCS admin Command Options
6-7    Flags for the admin Command
6-8    SCCS Command Options
6-9    Individual SCCS Commands
6-10    Functional Comparison: RCS and SCCS Commands
7-1    Internal make Macros