AWK — это удобный и функциональный инструмент Linux, который можно использовать для обработки входных данных в виде столбцов.
С помощью примеров из данной статьи, Вы сможете решать такие распространенные задачи, как :
- Печать Столбцов по Номерам
- Изменять Разделители Колонок
- Исключать Определенные Столбцы
- Печатать или Исключать Диапазон Столбцов
Печать Столбцов по Номерам с помощью AWK
Вывести все столбцы.
$ awk '{print $0}' file
Напечатать 3-ий столбец.
$ awk '{print $3}' file
Напечатать 1-ый и 3-ий столбцы.
$ awk '{print $1 $3}' file
Изменить Разделитель Колонок в AWK
По умолчанию в качестве символа разделителя колонок используется пробел и табуляция.
Использовать "," (запятую) в качестве разделителя и вывести 2-ую колонку.
$ awk -F "," '{print $2}' file
Использовать ":" (двоеточие) в качестве разделителя и напечатать 3-ий столбец.
$ awk -F ":" '{print $3}' file
Исключить Определенные Столбцы с помощью AWK
Напечатать все столбцы, за исключением 3-его.
$ awk '{$3=""; print $0}' file
Напечатать все столбцы, за исключением 1-ого и 2-ого.
$ awk '{$1=$2=""; print $0}' file
Напечатать или Исключить Диапазон Столбцов с помощью AWK
Вывести колоноки со 2-ой по 4-ую.
$ awk -v f=2 -v t=4 '{for(i=f;i<=t;i++) printf("%s%s",$i,(i==t)?"\n":OFS)}' file
Исключить диапазон столбцов со 2-ого по 4-ый и напечатать все остальные.
$ awk -v f=2 -v t=4 '{for(i=1;i<=NF;i++)if(i>=f&&i<=t)continue;else printf("%s%s",$i,(i!=NF)?OF
|