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


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Как дописать в начало строк дату? [Решено]  (Прочитано 1390 раз)

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

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Здравствуйте.
Расскажите, есть вот такое
netstat -n | grep tcp | grep 88.13.4.24:1215 |awk '{print $5}'| sort
109.87.41.80:55842
134.249.148.181:49235
134.249.148.181:49502
134.249.148.181:49598
134.249.148.181:49893
134.249.148.181:50548

хочу получать только ip с датой, типа такого
02.10.19.12:30 109.87.41.80
02.10.19.12:30 134.249.148.181
02.10.19.12:30 134.249.148.181
02.10.19.12:30 134.249.148.181
02.10.19.12:30 134.249.148.181
02.10.19.12:30 134.249.148.181

Как это правильно делается?

Убрать порты могу так, но скорее всего можно это сдлеать более красиво...
netstat -n | grep tcp | grep 88.13.4.24:1215 |awk '{print $5}'| grep -o -E "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"
Спасибо.

Цитировать
Правила форума
1.4. Листинги и содержимое текстовых файлов следует добавлять в сообщение с помощью тегов [spoiler]...[/spoiler] или [code]...[/code], либо прикреплять к сообщению в виде отдельного файла. Длинные гиперссылки следует оформлять при помощи тега [url=]...[/url]

  --Aleksandru
« Последнее редактирование: 18 Март 2020, 11:17:16 от zg_nico »

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Как дописать в начало строк дату?
« Ответ #1 : 02 Октябрь 2019, 15:07:39 »
А где в
Цитировать
есть вот такое
дата? Или если ее добавлять, то какую?

Цитировать
grep -o -E
это вобще ад... :-\ Что этот мега-шаблон ищет?

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: Как дописать в начало строк дату?
« Ответ #2 : 02 Октябрь 2019, 15:33:46 »
ReNzRv, сейчас даты вообще нет. Дату на время запуска netstat -n | grep tcp | grep 88.13.4.24:1215 |awk '{print $5}'| sort

ReNzRv, он находит все "правильные" ip. Откуда-то из сети взял.

Оффлайн bezbo

  • Старожил
  • *
  • Сообщений: 1484
    • Просмотр профиля
Re: Как дописать в начало строк дату?
« Ответ #3 : 02 Октябрь 2019, 15:37:12 »
awk '(date +%Y-%m-%d) {print $5}'
не?

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Как дописать в начало строк дату?
« Ответ #4 : 02 Октябрь 2019, 15:46:25 »
sed -nr 's/^(([0-9]+\.){3}[0-9]+).*/'"$(date '+%d.%m.%Y.%H:%M')"' \1/p'

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: Как дописать в начало строк дату?
« Ответ #5 : 02 Октябрь 2019, 15:56:38 »
bezbo, ошибка
netstat -n | grep tcp | grep 88.13.4.24:1215| awk '(date +%Y-%m-%d) {print $5}'
awk: line 1: syntax error at or near %

ReNzRv, я же верно понял
netstat -n | grep tcp | grep 88.13.4.24:1215| sed -nr 's/^(([0-9]+\.){3}[0-9]+).*/'"$(date '+%d.%m.%Y.%H:%M')"' \1/p'?
Вообще ничего не происходит. Просто курсор спускается ниже и всё.

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Как дописать в начало строк дату?
« Ответ #6 : 02 Октябрь 2019, 16:00:03 »
Ввысь,
Эта команда должна быть после:
netstat -n | grep tcp | grep 88.13.4.24:1215 |awk '{print $5}'| sortиз первого примера.

Оффлайн Ввысь

  • Автор темы
  • Активист
  • *
  • Сообщений: 407
    • Просмотр профиля
Re: Как дописать в начало строк дату?
« Ответ #7 : 02 Октябрь 2019, 16:05:01 »
ReNzRv, оно) Супер, спасибо большое.

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Как дописать в начало строк дату?
« Ответ #8 : 04 Октябрь 2019, 11:15:31 »
sed -nr 's/^(([0-9]+\.){3}[0-9]+).*/'"$(date '+%d.%m.%Y.%H:%M')"' \1/p'
тоже
вобще ад... 
Код: (bash) [Выделить]
netstat -tn | sed -r '/\<88.13.4.24:1215/! d;s/(\S*\s+){5}/\1/;s/:.*//;s/^/'$(date +%d.%m.%Y.%H:%M)' /' | sort -k2
« Последнее редактирование: 04 Октябрь 2019, 11:23:09 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн ReNzRv

  • Старожил
  • *
  • Сообщений: 2628
    • Просмотр профиля
Re: Как дописать в начало строк дату?
« Ответ #9 : 04 Октябрь 2019, 15:33:42 »
Azure,
О, да) Ваш код ну проще некуда, любой новичек сходу все поймет))
Короче можно было бы сделать имея исходные данные которые выдает netstat, а так работает и ладно.

Оффлайн Azure

  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Re: Как дописать в начало строк дату?
« Ответ #10 : 05 Октябрь 2019, 07:59:10 »
любой новичек сходу все поймет))
Код: (bash) [Выделить]
netstat -tn |
sed -r '
    /\<88.13.4.24:1215/! d             #выбираем строки с нужным IP
    s/(\S*\s+){5}/\1/                  #оставляем 5-е поле
    s/:.*//                            #убираем все после ":"
    s/^/'$(date +%d.%m.%Y.%H:%M)' /    #вставляем дату в начало строки
' |
sort -k2
« Последнее редактирование: 05 Октябрь 2019, 08:00:57 от Azure »
В Линукс можно сделать ВСЁ что угодно, достаточно знать КАК !

 

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