AWK ([ɔːk] is a domain-specific language designed for text processing and typically used as a data extraction and reporting tool. Like sed and grep, it is a filter, and is a standard#cli feature of most Unix-like operating systems.
The AWK language is a data-driven scripting language consisting of a set of actions to be taken against streams of textual data – either run directly on files or used as part of a pipeline – for purposes of extracting or transforming text, such as producing formatted reports.
Допустим, есть текстовый файл info.txt
следующего содержания:
fristName lastName age city ID
Thomas Shelby 30 Rio 400
Omega Night 45 Ontario 600
Wood Tinker 54 Lisbon N/A
Giorgos Georgiou 35 London 300
Timmy Turner 32 Berlin N/A
Вывод нужных строк и колонок
Вывести содержимое файла с нумерацией строк:
awk '{print NR,$0}' info.txt
Вывести только первую колонку файла:
awk '{print $1}' info.txt
Для вывода второй колонки использовать $2
, и т.д. По умолчанию, колонки определяются по пробелам.
Можно вывести несколько колонок:
awk '{print $1, $4}' info.txt
Вывести только крайнюю правую колонку:
awk '{print $NF}' info.txt
Вывести только первую строку, первую колонку:
awk '{print $1}' info.txt | head -1
Вывести первые три строки, первую колонку:
awk '{print $1}' info.txt | head -3
Вывод строк по RegExp
Вывод строк, начинающихся на O
:
awk '/^O/' info.txt
Вывод строк, завершающихся 0
:
awk '/0$/' info.txt
Можно использовать !
в качестве отрицания – вывести строки, НЕ заканчивающиеся на 0
:
awk '! /0$/' info.txt
Операторы сравнения
Вывести только строки, где третья колонка меньше 40:
awk '$3 < 40 { print $0 }' info.txt
📂 Tooling | Последнее изменение: 12.08.2024 13:32