Инструменты пользователя

Инструменты сайта

Загрузка не удалась. Возможно, проблемы с правами доступа?

linux:awk

Linux: примеры использования awk

gawk это язык распознавания и обработки шаблонов. Примеры:

#выборка полей из стандартного вывода
#выбирает первое поле
$ echo 'one two three four' | awk '{print $1}'
> one

#выбирает третье и первое поле
$ echo 'one two three four' | awk '{print $3,$1}'
> three one

Если полярзделены не пробелом или табулятором, то используем ключ -F:

....awk -F":" '{print $4}'

Если количество полей неизвестно, то используем переменную NF:

#выбираем последнее поле
....awk '{print $NF}'

или предпоследнее

....awk '{print $(NF-1)}'

как вариант, выбрать поле ровно посередине

....awk '{print $((NF/2)+1)}'

Подсчитать число байт переданных веб-сервером, на основании его log-файла (известно, что байты там последнее поле)

$ cat requests.log
23 июля 18:57:12 HTTPD [31950]: "GET / Foo / бар HTTP / 1.1" 200 344
23 июля 18:57:13 HTTPD [31950]: "GET / HTTP / 1.1" 200 9300
23 июля 19:01:27 HTTPD [31950]: "GET / HTTP / 1.1" 200 9300
23 июля 19:01:55 HTTPD [31950]: "GET / Foo / Baz HTTP / 1.1" 200 6401
23 июля 19:02:31 HTTPD [31950]: "? GET / Foo / Baz страница = 2 HTTP / 1.1" 200 6312
$ < requests.log awk '{totalBytes+=$NF} END {print totalBytes}'
31657
linux/awk.txt · Последние изменения: 2021/02/11 09:20 (внешнее изменение)