Маршрутизация пакетов Linux

Итак, просто найдите все числа -тире -числа -тире -числа? Это будет работать с более длинными строками / строками, даже без каких-либо букв «T» сразу после даты.

grep -o "[0-9][0-9][0-9][0-9]-[0-9][0-9]-[0-9][0-9]"

Или эквивалентно, но немного короче, с использованием фигурной скобки «повторяет/кратно»

grep -o '[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}'

Пример:

$ echo 2017-03-08T19:41:26Z | grep -o '[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}'
2017-03-08

Если во вводе не так много других тире, вы можете искать любые 4 символа, тире, два символа, тире, еще два символа:

$ echo 2017-03-08T19:41:26Z | grep -o '....-..-..'
2017-03-08
1
08.07.2018, 10:17
1 ответ

Это можно сделать с помощью модуля string.

man iptables-extensions:

The string pattern can be used for simple text characters.
iptables -A INPUT -p tcp --dport 80 -m string --algo bm --string 'GET /index.html' -j LOG

The hex string pattern can be used for non-printable characters, like |0D 0A| or |0D0A|.
iptables -p udp --dport 53 -m string --algo bm --from 40 --to 57 --hex-string '|03|www|09|netfilter|03|org|00|'

2
27.01.2020, 23:32

Теги

Похожие вопросы