Awk is a scripting language used for manipulating data and generating reports. It scans files line by line, splits each line into fields, compares the line/fields to patterns, and performs actions on matched lines. An awk script consists of patterns and actions, and has BEGIN, END, and main processing blocks. Patterns can match the input record or use expressions, and actions are performed when a pattern matches. Awk supports variables, arithmetic, relational and logical operators to write data manipulation scripts.