Печать столбцов (колонок) в Bash с помощью AWK

awk parsing

AWK - это мощный инструмент командной строки, который можно использовать для обработки входных данных в виде столбцов.

С помощью примеров из данной статьи, Вы сможете решать такие распространенные задачи, как :

  • Печать Столбцов по Номерам
  • Изменять Разделители Колонок
  • Исключать Определенные Столбцы
  • Печатать или Исключать Диапазон Столбцов

Печать Столбцов по Номерам с помощью AWK

Вывести все столбцы.

$ awk '{print $0}' file

Напечатать 3-ий столбец.

$ awk '{print $3}' file

Напечатать 1-ый и 3-ий столбцы.

$ awk '{print $1 $3}' file

Изменить Разделитель Колонок в AWK

По умолчанию 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)?OFS:ORS)}' file

Похожие статьи