Squeak.ru - шаблоны программирования

Захват только час и минуту из журналов. Хотите исключить секунды в выводе

Я запускаю команду ниже для захвата вывода. Во временном разрезе также фиксируются секунды. Я хочу исключить секунды в выводе. Пожалуйста помоги

кошка /tmp/dnsmasq.log | grep-запрос | egrep -iv 'AAA|PTR|SRV' | awk '{print $1" "$2" "$3","$8","$6}' | awk 'BEGIN{FS=OFS=","} {num=split($NF,arra y,".");$NF=array[num-1]"."array[num]} 1'

Пример входного файла приведен ниже:

31 мая, 17:58:57 dnsmasq[1695]: запрос[A] sites.google.com из 10.0.0.35

31 мая, 17:59:15 dnsmasq[1695]: запрос[A] присутствия.teams.microsoft.com из 10.0.0.35

Я хочу, чтобы вывод был таким:

31 мая 17:49,127.0.0.1,scotiabank.com

31 мая 17:49,10.0.0.35,google.com

31.05.2020

  • Если вы хотите, чтобы образец входного файла и желаемый результат были полезными, они должны совпадать. Как вы получаете 17:49 на выходе из значений, которые вы показываете во входном файле? Где вы видите scotiabank.com во входном файле примера? 31.05.2020
  • его образцы входных и выходных файлов для демонстрации формата входных/выходных файлов. я не думаю, что это имеет значение, так как значения в этом файле изменятся во входном файле. нам нужно создать общую команду, которая будет служить цели. Надеюсь, это имеет смысл. 01.06.2020
  • Это не так. Образец вывода должен быть таким, какой получился бы из образца ввода, в соответствии с вашими бизнес-правилами. Например, я хотел бы понять, будет ли 17:58:57 округлено до ближайшей минуты (17:59) или усечено (17:58). Это становится очевидным, если ваш вывод совпадает с вводом; с тем, что вы разместили, невозможно сказать. Изучите это как очень общее правило всякий раз, когда вы задаете вопросы в области вычислительной техники (и, на самом деле, в любой технической или даже нетехнической области). 01.06.2020
  • еще раз подчеркну, что не стоит фокусироваться на ценностях. Это должен быть формат входных и выходных файлов. Я в курсе общих правил и совсем не новичок в вычислительной и технической сфере. 01.06.2020

Ответы:


1

EDIT: добавление еще 1 решения после просмотра вашего Input_file, но все еще неясны условия, как его получить, попробуйте один раз. Написано и протестировано только с показанными образцами.

awk '
BEGIN{
  OFS=","
}
/query/ && match($0,/^[a-zA-Z]+ [0-9]{2} [0-9]{2}:[0-9]{2}/){
  print substr($0,RSTART,RLENGTH),$NF,$(NF-2)
}
'  Input_file


Поскольку вы не показали свой фактический файл Input_file, следующее написано, видя только вывод вашей показанной команды.

your_command | awk 'BEGIN{FS=OFS=","} {sub(/:[0-9]{2}$/,"",$1)} 1'

ИМХО, вы могли бы выполнить все эти операции в одном awk, если вы покажете нам образец Input_file, вместо того, чтобы использовать 3-4 команды канала.

EDIT BY OP(Рабочая команда): cat /tmp/dnsmasq.log| grep query | egrep -iv 'AAA|PTR|SRV' | awk '{print $1" "$2" "$3","$8","$6}' | awk 'BEGIN{FS=OFS=","} {sub(/:[0-9]{2}$/,"",$1)} 1' | awk 'BEGIN{FS=OFS=","} {num=split($NF,array,".");$NF=array[num-1]"."array[num]} 1' |sort | uniq

ПРИМЕЧАНИЕ. Эту задачу можно выполнить за один awk, но OP добавил вышеуказанные команды в свой существующий код. Для будущих пользователей один awk здесь будет более эффективным.

31.05.2020
Новые материалы

Угловая структура архитектуры
Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

«Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

Создайте API с помощью Python FastAPI
Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

Веселье с прокси-сервером JavaScript
Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...