Register your product to gain access to bonus material or receive a coupon.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
This eBook includes the following formats, accessible from your Account page after purchase:
EPUB The open industry format known for its reflowable content and usability on supported mobile devices.
PDF The popular standard, used most often with the free Acrobat® Reader® software.
This eBook requires no passwords or activation to read. We customize your eBook by discreetly watermarking it with your name, making it uniquely yours.
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."
Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Download the sample pages (includes Chapter 3)
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