1. An Awk Tutorial 1.1 Getting Started 1.2 Simple Output 1.3 Formatted Output 1.4 Selection 1.5 Computing with Awk 1.6 Control-Flow Statements 1.7 Arrays 1.8 Useful One-liners 1.9 What Next? 2. Awk In Action 2.1 Personal Computation 2.2 Selection 2.3 Transformation 2.4 Summarization 2.5 Personal Databases 2.6 A Personal Library 2.7 Summary 3. Exploratory Data Analysis 3.1 The Sinking of the Titanic 3.2 Beer Ratings 3.3 Grouping Data 3.4 Unicode Data 3.5 Basic Graphs and Charts 3.6 Summary 4. Data Processing 4.1 Data Transformation and Reduction 4.2 Data Validation 4.3 Bundle and Unbundle 4.4 Multiline Records 4.5 Summary 5. Reports And Databases 5.1 Generating Reports 5.2 Packaged Queries and Reports 5.3 A Relational Database System 5.4 Summary 6. Processing Words 6.1 Random Text Generation 6.2 Interactive Text-Manipulation 6.3 Text Processing 6.4 Making an Index 6.5 Summary 7. Little Languages 7.1 An Assembler and Interpreter 7.2 A Language for Drawing Graphs 7.3 A Sort Generator 7.4 A Reverse-Polish Calculator 7.5 A Different Approach 7.6 A Recursive-Descent Parser for Arithmetic Expressions 7.7 A Recursive-Descent Parser for a Subset of Awk 8. Experiments With Algorithms 8.1 Sorting 8.2 Profiling 8.3 Topological Sorting 8.4 Make: A File Updating Program 8.5 Summary 9. Epilogue 9.1 Awk as a Language 9.2 Performance 9.3 Conclusion Appendix A: Awk Reference Manual A.1 Patterns A.2 Actions A.3 User-Defined Functions A.4 Output A.5 Input A.6 Interaction with Other Programs A.7 Summary