AWK: Печать Столбцов — Указываем Разделитель — Linux Bash

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

В данной статье я покажу, как печатать столбцы по номерам — первый, второй, последний, несколько столбцов и т.д.

Я покажу, как изменить разделитель по умолчанию в awk.

А в конце этой статьи я также покажу, как печатать или исключать диапазоны столбцов с помощью awk.

Дельный Совет: Печатайте строки из файла между двумя паттернами с помощью awk или sed! Читать далее →

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

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

$ awk '{print $0}' FILE

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

$ awk '{print $1}' FILE

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

$ awk '{print $2}' FILE

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

$ awk '{print $NF}' FILE

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

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

Дельный Совет: Добавьте символ в начале или в конце каждой строки файла с помощью awk или sed! Читать далее →

AWK: Изменить Разделитель Полей

В качестве разделителя полей в awk может выступать как отдельный символ, так и регулярное выражение.

Он контролирует каким образом awk разбивает входящие строки на столбцы.

По умолчанию, awk в качестве разделителя полей, использует пробелы и табуляции.

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

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

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

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

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

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

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

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

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

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

Дельный Совет: Удаляйте пустые строки в файле с помощью grep, tr, sed или awk! Читать далее →

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

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

$ 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

One Reply to “AWK: Печать Столбцов — Указываем Разделитель — Linux Bash”

  1. Very helpful, but how do you only print part of a line, for instance the last portion of a line followed by a «=»

Добавить комментарий