Awk is a programming language used for processing structured data and generating reports. It allows manipulation of rows and columns in a file. Awk views a text file as records made up of fields, and can perform actions on certain records by using patterns and conditional statements. It supports variables, functions, and regular expressions. Syntax involves specifying an awk script or script file to apply to one or more input files.