The AWK Programming Language, 2nd edition

Published by Addison-Wesley Professional (September 20, 2023) © 2024

  • Alfred V. Aho Columbia University
  • Brian W. Kernighan
  • Peter J. Weinberger
Products list
Products list

New edition of the classic book on the Awk Programming Language

Awk was developed in 1977 at Bell Labs, and it's still a remarkably useful tool for solving a wide variety of problems quickly and efficiently. In this update of the classic Awk book, the creators of the language show you what Awk can do and teach you how to use it effectively.

Here's what programmers today are saying: "I love Awk." "Awk is amazing." "It is just so damn good." "Awk is just right." "Awk is awesome." "Awk has always been a language that I loved."

It's easy: "Simple, fast and lightweight." "Absolutely efficient to learn because there isn't much to learn." "3-4 hours to learn the language from start to finish." "I can teach it to new engineers in less than 2 hours."

It's productive: "Whenever I need to do a complex analysis of a semi-structured text file in less than a minute, Awk is my tool." "Learning Awk was the best bang for buck investment of time in my entire career." "Designed to chew through lines of text files with ease, with great defaults that minimize the amount of code you actually have to write to do anything."

It's always available: "AWK runs everywhere." "A reliable Swiss Army knife that is always there when you need it." "Many systems lack Perl or Python, but include Awk."

Preface ix

Chapter 1: An Awk Tutorial 1
1.1 Getting Started 1
1.2 Simple Output 4
1.3 Formatted Output 7
1.4 Selection 8
1.5 Computing with Awk 10
1.6 Control-Flow Statements 13
1.7 Arrays 16
1.8 Useful One-liners 17
1.9 What Next? 19

Chapter 2: Awk in Action 21
2.1 Personal Computation 21
2.2 Selection 23
2.3 Transformation 25
2.4 Summarization 27
2.5 Personal Databases 28
2.6 A Personal Library 31
2.7 Summary 34

Chapter 3: Exploratory Data Analysis 35
3.1 The Sinking of the Titanic 36
3.2 Beer Ratings 41
3.3 Grouping Data 43
3.4 Unicode Data 45
3.5 Basic Graphs and Charts 47
3.6 Summary 49

Chapter 4: Data Processing 51
4.1 Data Transformation and Reduction 51
4.2 Data Validation 57
4.3 Bundle and Unbundle 59
4.4 Multiline Records 60
4.5 Summary 66

Chapter 5: Reports and Databases 67
5.1 Generating Reports 67
5.2 Packaged Queries and Reports 73
5.3 A Relational Database System 75
5.4 Summary 83

Chapter 6: Processing Words 85
6.1 Random Text Generation 85
6.2 Interactive Text-Manipulation 90
6.3 Text Processing 92
6.4 Making an Index 99
6.5 Summary 105

Chapter 7: Little Languages 107
7.1 An Assembler and Interpreter 108
7.2 A Language for Drawing Graphs 111
7.3 A Sort Generator 113
7.4 A Reverse-Polish Calculator 115
7.5 A Different Approach 117
7.6 A Recursive-Descent Parser for Arithmetic Expressions 119
7.7 A Recursive-Descent Parser for a Subset of Awk 122
7.8 Summary 126

Chapter 8: Experiments with Algorithms 129
8.1 Sorting 129
8.2 Profiling 142
8.3 Topological Sorting 144
8.4 Make: A File Updating Program 148
8.5 Summary 153

Chapter 9: Epilogue 155
9.1 Awk as a Language 155
9.2 Performance 157
9.3 Conclusion 160

Appendix A: Awk Reference Manual 163
A.1 Patterns 165
A.2 Actions 176
A.3 User-Defined Functions 196
A.4 Output 197
A.5 Input 202
A.6 Interaction with Other Programs 207
A.7 Summary 208

Index 209

Need help? Get in touch