AWK — различия между версиями
Root (обсуждение | вклад) |
Root (обсуждение | вклад) |
||
(не показано 5 промежуточных версий этого же участника) | |||
Строка 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 | ||
+ | |||
+ | '''Примеры''' | ||
Вывод всего содержимого файла | Вывод всего содержимого файла | ||
Строка 21: | Строка 23: | ||
awk '<font color=blue>{print $NF}</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 | awk '<font color=blue>/^O/</font>' filename | ||
− | Вывод строк заканчивающихся | + | Вывод строк заканчивающихся буквой F |
awk '<font color=blue>/F$/</font>' filename | awk '<font color=blue>/F$/</font>' filename | ||
Строка 36: | Строка 41: | ||
awk '<font color=blue>$3 < 40 { print $0 }</font>' | 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