AWK — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
(не показано 9 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
− | Базовый синтаксис awk | + | '''Базовый синтаксис awk''' |
awk '<font color=blue>{action}</font>' filename | awk '<font color=blue>{action}</font>' filename | ||
Строка 5: | Строка 5: | ||
awk '<font color=blue>/regex pattern/{action}</font>' filename | awk '<font color=blue>/regex pattern/{action}</font>' filename | ||
+ | |||
+ | '''Примеры''' | ||
Вывод всего содержимого файла | Вывод всего содержимого файла | ||
− | awk '<font color=blue>{print $0}</font>' filename | + | awk '<font color=blue>{print $0}</font>' filename |
Вывод всего содержимого файла с нумерацией строк | Вывод всего содержимого файла с нумерацией строк | ||
Строка 13: | Строка 15: | ||
Вывод определённого столбца | Вывод определённого столбца | ||
− | awk '<font color=blue>{print $3}</font>' filename | + | awk '<font color=blue>{print $3}</font>' filename |
+ | |||
+ | Вывод нескольких столбцов | ||
+ | awk '<font color=blue>{print $1, $4}</font>' filename | ||
+ | |||
+ | Вывод последнего столбца | ||
+ | awk '<font color=blue>{print $NF}</font>' filename | ||
+ | |||
+ | Вывод предпоследнего столбца | ||
+ | awk '<font color=blue>{print $NF-1}</font>' filename | ||
+ | |||
+ | Вывод строк начинающихся с буквы O | ||
+ | awk '<font color=blue>/^O/</font>' filename | ||
+ | |||
+ | Вывод строк заканчивающихся буквой F | ||
+ | awk '<font color=blue>/F$/</font>' filename | ||
+ | |||
+ | Вывод строк НЕ заканчивающихся буквой F | ||
+ | awk '<font color=blue>! /F$/</font>' filename | ||
+ | |||
+ | Вывод всех строк содержащих io | ||
+ | awk '<font color=blue>/io/</font>' filename | ||
+ | |||
+ | Вывод строк в которых значение 3го столбца меньше 40(столбец с цифрами) | ||
+ | awk '<font color=blue>$3 < 40 { print $0 }</font>' | ||
+ | |||
+ | Если разделитель не пробел, как например в /etc/password, то можно указать разделитель столбцов с помощью -F | ||
+ | awk -F ':' '<font color=blue>{print $1}</font>' | ||
+ | |||
+ | |||
Вывести все хостнеймы(колонка 2) из строк которые начинаются с цифр(ипишек) | Вывести все хостнеймы(колонка 2) из строк которые начинаются с цифр(ипишек) | ||
awk '<font color=blue>/^[0-9]/{print $2}</font>' /etc/hosts | awk '<font color=blue>/^[0-9]/{print $2}</font>' /etc/hosts |
Текущая версия на 16:56, 30 июня 2022
Базовый синтаксис awk
awk '{action}' filename
Когда нужно найти текст, соответствующий конкретному шаблону, или же конкретное слово в тексте, команда принимает следующий вид
awk '/regex pattern/{action}' filename
Примеры
Вывод всего содержимого файла
awk '{print $0}' filename
Вывод всего содержимого файла с нумерацией строк
awk '{print NR,$0}'
Вывод определённого столбца
awk '{print $3}' filename
Вывод нескольких столбцов
awk '{print $1, $4}' filename
Вывод последнего столбца
awk '{print $NF}' filename
Вывод предпоследнего столбца
awk '{print $NF-1}' filename
Вывод строк начинающихся с буквы O
awk '/^O/' filename
Вывод строк заканчивающихся буквой F
awk '/F$/' filename
Вывод строк НЕ заканчивающихся буквой F
awk '! /F$/' filename
Вывод всех строк содержащих io
awk '/io/' filename
Вывод строк в которых значение 3го столбца меньше 40(столбец с цифрами)
awk '$3 < 40 { print $0 }'
Если разделитель не пробел, как например в /etc/password, то можно указать разделитель столбцов с помощью -F
awk -F ':' '{print $1}'
Вывести все хостнеймы(колонка 2) из строк которые начинаются с цифр(ипишек)
awk '/^[0-9]/{print $2}' /etc/hosts