grep фильтрация по столбцу

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ответить
safronowmax
Сообщения: 103

grep фильтрация по столбцу

Сообщение safronowmax »

Здравствуйте, подскажите пж-та, есть лог nginx access.log, необходимо из данного лога отфильтровать все запросы с определенного ip-адреса (т.е. сделать grep по первому стобцу, содержащему искомый адрес). Пытаюсь так: cat host.access.log | awk '{print $1}' |grep 192.168.0.5
Но в итоге, естественно, выводится только первый столбец благодаря awk. Как можно отгрепать по первому столбцу, но сохраняя полностью вывод строки?
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Re: grep фильтрация по столбцу

Сообщение yoricI »

Так grep по умолчанию выведёт всю строку при совпадении в её содержимом. Хоть в первом, хоть в среднем или последнем столбце.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: grep фильтрация по столбцу

Сообщение Bizdelnick »

grep '^192\.168\.0\.5 ' host.access.log
P.S. Учите регулярные выражения — пригодится.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
lone_wolf
Сообщения: 206

Re: grep фильтрация по столбцу

Сообщение lone_wolf »

Bizdelnick писал:
06.08.2018 13:09
P.S. Учите регулярные выражения — пригодится.
Регулярные выражения это как китайский язык, проще китайский с японским выучить чем разобраться в регулярных выражениях :headhurt:
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: grep фильтрация по столбцу

Сообщение Vascom »

Не, основы регулярок очень просты и очень удобны.
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4823
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: grep фильтрация по столбцу

Сообщение SLEDopit »

safronowmax писал(а):
06.08.2018 12:50
Как можно отгрепать по первому столбцу, но сохраняя полностью вывод строки?
Если нужно грепать не по первому столбцу, то там уже проще окать. Вот пример со вторым столбцом:

Код: Выделить всё

awk '{if($2=="192\.168\.0\.5")print $0}' host.access.log
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
Аватара пользователя
lone_wolf
Сообщения: 206

Re: grep фильтрация по столбцу

Сообщение lone_wolf »

Vascom писал:
06.08.2018 13:34
Не, основы регулярок очень просты и очень удобны.
Есть ссыль, откуда начать? (если можно на русском, с буржуйским не дружу :blush: )
Спасибо сказали:
Аватара пользователя
Vascom
Сообщения: 1699
ОС: Fedora 32

Re: grep фильтрация по столбцу

Сообщение Vascom »

Начать можно с гугла или википедии. Но лучше отталкиваться от задачи. Регулярками можно сделать любой паттерн, поэтому сперва надо изучить как реализовать то, что требуется в данный момент для данной задачи.
Например, как уже показали выше, символ начала строки ^. Есть и символ конца строки.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: grep фильтрация по столбцу

Сообщение Bizdelnick »

lone_wolf писал:
06.08.2018 17:08
Есть ссыль, откуда начать?
Джеффри Фридл, «Регулярные выражения». Книжка старая, но актуальности не утратила, разве что новомодный движок RE2 не описан. Найти PDF не проблема, и бумажный вариант в продаже до сих пор есть. Начинать с начала.
Upd. Оказывается, её недавно переиздали. Для первого знакомства будет вполне достаточно первых двух глав, которые есть в свободном доступе.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: grep фильтрация по столбцу

Сообщение serzh-z »

Bizdelnick писал:
06.08.2018 17:42
новомодный движок RE2
А он модный? Припоминаю, что в нем нет кучи нужных фич, которые поддерживаются даже sed.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: grep фильтрация по столбцу

Сообщение Bizdelnick »

serzh-z писал:
06.08.2018 18:01
Припоминаю, что в нем нет кучи нужных фич, которые поддерживаются даже sed.
Это каких же? Вроде бы туда запихнули всё, что только можно реализовать на ДКА, и уж точно всё, что есть в POSIX extended. По сравнению с perl/pcre и подобными им — да, кое-чего нет, но они НКА.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: grep фильтрация по столбцу

Сообщение serzh-z »

Bizdelnick писал:
06.08.2018 18:05
Это каких же?
'(?!)', '(?=)' и т.д. как минимум. Обратные ссылки.
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: grep фильтрация по столбцу

Сообщение Bizdelnick »

serzh-z писал:
06.08.2018 18:17
'(?!)', '(?=)' и т.д. как минимум. Обратные ссылки.
Всё правильно, в ДКА lookahead'ы и обратные ссылки невозможны. По этой причине их нет и в POSIX, в том числе в sed.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Re: grep фильтрация по столбцу

Сообщение yoricI »

О, у меня есть такая точно книжка, те же обложка, совы, издательство и стиль, только автор Тони Стаблибайн, и чуть другое оглавление. Маленькая карманного формата. Это не то?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: grep фильтрация по столбцу

Сообщение Bizdelnick »

yoricI писал:
06.08.2018 18:55
Это не то?
Ну если есть, то должно быть несложно сравнить и понять. ☺
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: grep фильтрация по столбцу

Сообщение serzh-z »

Bizdelnick писал:
06.08.2018 18:36
serzh-z писал:
06.08.2018 18:17
'(?!)', '(?=)' и т.д. как минимум. Обратные ссылки.
Всё правильно, в ДКА lookahead'ы и обратные ссылки невозможны. По этой причине их нет и в POSIX, в том числе в sed.
Э... да мне-то, как пользователю, что с того? Google запилил библиотеку, он свою задачу решил, все быстро и идеологически правильно, но матчинг, в продуктах, которые ее используют, - менее удобный и не решает те задачи, которые позволяет решить PCRE.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu
Контактная информация:

Re: grep фильтрация по столбцу

Сообщение serzh-z »

Bizdelnick писал:
06.08.2018 18:36
Всё правильно, в ДКА lookahead'ы и обратные ссылки невозможны.
И, чего уж там, это не мешает им переступать через себя: https://github.com/google/re2/blob/master/re2/nfa.cc. А не реализовали они это лишь по причине того, что хотели, чтобы он работал "в 20 раз быстрее PCRE".
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: grep фильтрация по столбцу

Сообщение Bizdelnick »

serzh-z, ну не нравится — не пользуйся, в чём проблема? От этого движок (и его синтаксис, имеющий несколько других инкарнаций) новомодным быть не перестаёт.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: grep фильтрация по столбцу

Сообщение Bizdelnick »

serzh-z писал:
06.08.2018 19:08
Bizdelnick писал:
06.08.2018 18:36
Всё правильно, в ДКА lookahead'ы и обратные ссылки невозможны.
И, чего уж там, это не мешает им переступать через себя: https://github.com/google/re2/blob/master/re2/nfa.cc.
// This is an actual NFA like the theorists talk about,
// not the pseudo-NFA found in backtracking regexp implementations.
Похоже, не так уж сильно переступили. Но чтобы понять, что они имели в виду, надо убить немало времени…
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Ответить