awk – заметки

Печать всех столбцов:

$ awk '{print $0}' FILE

Вывести первый столбец:

$ awk '{print $1}' FILE

Вывести второй столбец:

$ awk '{print $2}' FILE

Вывести последний столбец:

$ awk '{print $NF}' FILE

Печатать нескольких столбцов (первый и третий):

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

В качестве разделителя полей в awk может выступать как отдельный символ, так и регулярное выражение.
Он контролирует каким образом awk разбивает входящие строки на столбцы. По умолчанию, awk в качестве разделителя полей, использует пробелы и табуляции. Вы можете указать awk чем разделены поля с помощью опции -F в командной строке.

Использовать , (запятую) в качестве разделителя и напечатать первый столбец:

$ awk -F "," '{print $2}' FILE

Использовать : (двоеточие) в качестве разделителя и напечатать третий столбец:

$ awk -F ":" '{print $3}' FILE

Исключение Столбцов

Напечатать все столбцы, за исключением третьего:

$ awk '{$3=""; print $0}' FILE

Напечатать все столбцы, за исключением первого и второго:

$ awk '{$1=$2=""; print $0}' FILE

Печать/Исключение Диапазонов

Напечатать диапазон столбцов со второго по четвертый:

$ awk -v f=2 -v t=4 '{for(i=f;i<=t;i++) printf("%s%s",$i,(i==t)?"\n":OFS)}' FILE

Исключить диапазон столбцов со второго по четвертый и напечатать все остальные:

$ 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