Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Как сделать выборку из лога?  (Прочитано 975 раз)

0 Пользователей и 1 Гость просматривают эту тему.

surfer

  • Автор темы
  • Гость
Как сделать выборку из лога?
« : 10 Июля 2017, 17:07:21 »
Например, есть лог:
(Нажмите, чтобы показать/скрыть)
Как сделать выборку по последнему значению в строке, если оно больше заданного значения?

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6723
  • 20% Cooler
    • Просмотр профиля
Re: Как сделать выборку из лога?
« Ответ #1 : 10 Июля 2017, 17:41:07 »
Больше 1000:

while read i; do if [[ $(echo "$i" | grep -o '[0-9]*$') -gt 1000 ]] ; then echo "$i" ; fi ; done < /file.log
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Как сделать выборку из лога?
« Ответ #2 : 10 Июля 2017, 19:22:58 »
Больше 1000:
и равноgrep '\b[0-9]\{4,\}\s*$' file.log
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6723
  • 20% Cooler
    • Просмотр профиля
Re: Как сделать выборку из лога?
« Ответ #3 : 10 Июля 2017, 19:38:01 »
Azure, ну 1000 все-таки частный случай. Вряд ли одной регуляркой можно выполнить задачу. (например, не 1000, а 128)
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн ARTGALGANO

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1936
    • Просмотр профиля
Re: Как сделать выборку из лога?
« Ответ #4 : 10 Июля 2017, 19:47:26 »
awk '{if ($10 >= 1000) print $0}'??

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2648
    • Просмотр профиля
Re: Как сделать выборку из лога?
« Ответ #5 : 10 Июля 2017, 20:51:57 »
по последнему значению в строке

awk '$NF >= 1000'

Оффлайн Azure

  • Модератор раздела
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Как сделать выборку из лога?
« Ответ #6 : 10 Июля 2017, 21:28:38 »
например, не 1000, а 128)
Конечно не все, но можно подобрать более-менее составную регулярку'[0-9]\{4,}\|[2-9][0-9][0-9]\|1[3-9][0-9]\|129'
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

Страница сгенерирована за 0.046 секунд. Запросов: 26.