Страница 1 из 1
awk, sed, grep?
Добавлено: 25 мар 2020, 10:14
Anonim19992
Доброго времени суток. Нужна помощь, как новичку. Имею обновляемый файл (к примеру, парсинг чата с
Текущего сайта (просто как пример, что бы не попасть на рекламу сторонних сервисов)) . Планирую выводить в консоли выводить определенную информацию (к примеру, обращение в чате и т.п.) и что бы он не заканчивал свою работу, при нахождении регулярки, а продолжал искать следующую. С помощью чего это лучше реализовать?
Сам смотрю в сторону awk, но лучше узнать мнение более опытных в данном вопросе людей.
awk, sed, grep?
Добавлено: 25 мар 2020, 10:25
slant
"Планирую ремонтировать машину, с помощью какого инструмента это лучше всего сделать?"
Эти программы не являются конкурентами или альтернативой одна другой. У каждой свои преимущества и специализация в вопросах обработки текста. Без полной конкретики по вопросу - никто объективно ответить не сможет, это в лучшем случае будет личная вкусовщина. Очень многое можно сделать любой из них, но что будет удобнее/лучше в конкретном случае - без этой самой конкретики не скажешь. Много тонкостей.
awk, sed, grep?
Добавлено: 25 мар 2020, 10:36
Anonim19992
ок) ко мне обращаются по нику в чате данного форума. я хочу, что бы данные сообщения выводились в консоль, но что бы при нахождении 1 регулярки, скрипт не завершил свою работу, а дальше продолжал работать и ждал следующие реглярки на вывод в консоль и т.д.).
awk, sed, grep?
Добавлено: 25 мар 2020, 10:40
symon2014
Anonim19992, обращал внимание , что в панели чата справа каждые несколько секунд крутится колёсико? Может это какой нибудь крон включается регулярно?

awk, sed, grep?
Добавлено: 25 мар 2020, 10:41
rogoznik
symon2014, это JS
awk, sed, grep?
Добавлено: 25 мар 2020, 10:51
FreeStyler
Anonim19992, а что
awk '/<expression>/'
разве находит только первое вхождение? Вроде бы все.
Например,
awk '/login/' /etc/passwd
Вообще не знаю эти седы, я бы пыху заюзал

awk, sed, grep?
Добавлено: 25 мар 2020, 10:53
Anonim19992
Перенес с чата информацию, что бы она не потерялась =))
Сегодня, 17:51 Anonim19992: @symon2014 Текст с чата сохраняется в chat.txt (.txt для понимая формата файла и типа информации в нем). Сохраняется непрерывно (24/7). Нужно, что бы из этого файла в терминале показывались все обращения к определенному нику ( @Anonim19992 ) как пример.
Сегодня, 17:52 Anonim19992: но что бы скрипт не завершался после показа 1 блока информации, а продолжал ждать следующее совпадение и показывал его тоже
awk, sed, grep?
Добавлено: 25 мар 2020, 10:55
slant
Anonim19992 писал(а): ↑25 мар 2020, 10:36
ок) ко мне обращаются по нику в чате данного форума. я хочу, что бы данные сообщения выводились в консоль, но что бы
Тут прежде чем ники парсить, надо решить такую задачу: как будет хранится текст полученный из чата, и как будем определять - это старая строка или новая? Т.е. "ее уже парсили раньше или нет?" Т.к. при подходе "в лоб" запрос текста со страницы вернет весь наличный текст из чата. И однозначного признака нового сообщения в нем не будет. Т.е. если просто по таймеру парсить этот запрос - будет регулярно парситься одно и то же по кругу, пока не сдвинется в архив в самом чате.
Когда научитесь выбирать из запроса только новую строчку которой раньше (в предыдущем запросе) не было - и ее уже можно будет парсить любым из вышеописанных трех. Но вот именно выделять эту самую новую строчку - тут очевидного решения вообще нету. Либо БД заводить, либо играться со сравнениями текста, отрезая совпадающий с предыдущих раз.
awk, sed, grep?
Добавлено: 25 мар 2020, 11:00
symon2014
slant писал(а): ↑25 мар 2020, 10:55
Либо БД заводить,
архив чата как то дописывается же.
awk, sed, grep?
Добавлено: 25 мар 2020, 11:02
FreeStyler
Anonim19992,
сёрчить учимся
https://duckduckgo.com/?q=nix+monitorin ... cal&ia=web
Например, так:
watch awk '/<nickname>/' chat.txt
awk, sed, grep?
Добавлено: 25 мар 2020, 11:11
rogoznik
В случае с нашим чатом - в строке есть время, можно по нему отслеживать какие строки уже парсились, какие нет
awk, sed, grep?
Добавлено: 25 мар 2020, 11:26
Anonim19992
rogoznik писал(а): ↑25 мар 2020, 11:11
В случае с нашим чатом - в строке есть время,
В том чате, где будет данный парсинг время тоже присутствует. планирую сделать контроль по нему =))