AWK — интерпретируемый скриптовый C-подобный язык построчного разбора и обработки входного потока (например, текстового файла) по заданным шаблонам. Работает в bash (SH) скриптах.
Попробуем разобраться с AWK на примерах:
Синтаксис awk gawk [ключи] [программа] [ список файлов] -F fs - разделитель полей -f файл программы
Создадим список с которым будем работать и назовем его cars.txt.
plym fury 1970 73 2500
chevy malibu 1999 60 3000
ford mustang 1965 45 10000
volvo s80 1998 102 9850
ford thundbd 2003 15 10500
chevy maliby 2000 50 3500
bmw 325i 1985 115 450
honda accord 2001 30 6000
ford taurus 2004 10 17000
toyota rav4 2002 180 750
chevy impala 1985 85 1550
ford explor 2003 25 9500
Начнем работу.
вывод всего файла.
gawk '{print}' cars
Вывод отдельных столбцов
gawk '{print $1, $2, $5}' cars.txt
Использование шаблона
gawk ' /chevy/ {print}' cars.txt
Использование оператора соответствия
gawk '$1 ~ /h/' cars.txt
gawk '$1 ~ /^h/' cars.txt
gawk '$2 ~ /^[tm]/' cars.txt
gawk '$3 ~/5$/ {print $3, $1, «$» $5}' cars.txt
Сравнение
текстовое
gawk '«2000» ⇐$5 && «9000»
> $5' cars.txt
числовое
gawk '2000 ⇐$5 && 9000 > $5' cars.txt
Оператор диаразона
gawk '/volvo/,/bmw/' cars.txt
Работа с файлами программы:
Создадим файл header
BEGIN{ print « Производ. Модель. Год. Пробег. Цена» }
{print}