проблема - это, находит DST=192.168.1.1, но это должно только найти 192.168.1.1
Это во многом зависит от инструмента, который Вы используете. Например, с sed это могло бы дать Вам, хотят Вас, хотят.
echo "... SRC=10.1.1.1 DST=192.168.1.1 LEN=40 ..." | \ sed -e 's/.*DST=\([0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\).*/\1/g' 192.168.1.1
См. эту статью о группировке regex.
При попытке сделать выделение, это похоже на то, что можно хотеть/нуждаться. Из конфигурации.
# cs_re_s:
: # Like cs_re but only the substrings are used(!). E.g.: # ^....(...)...(...) # In the example above only what matches between '(' and ')' is # assigned a color. See the 'acctail' colorscheme for an example. Существует даже пример, который в том файле близко к тому, чему я верю, Вы хотите. Пример
cs_re_s:cyan:kernel: .*(SRC=[^ ]*) *(DST=[^ ]*)
То, что Вы хотите, который я думаю, должно выделиться, что-либо после DST может бытьcs_re_s:red:kernel: .*DST=([^ ]*)
.
Multilog от DJB daemontools может делать (почти) именно то, что вы просите. Единственный недостаток, о котором я знаю, это то, что не во многих дистрибутивах есть пакет для daemontools .
Если вы не управляете своим приложением с помощью svc
(часть daemontools), вы нужно будет найти способ передать вывод по конвейеру в команду типа
multilog t s1048576 n100 ./my_log_directory
. Это переводится как:
t
: вставить временную метку tai64n (которую можно преобразовать во время чтения с помощью tai64nlocal
) s1048576
: повернуть файл журнала, когда он вырастет до 1 МБ n100
: сохранить не более 100 повернутых файлов . / my_log_directory
: все, что начинается с .
или /
- записать журнал в этот каталог Записываемый журнал будет иметь имя файла текущий
, и когда multilog вращает журнал, он будет переименован в @
, где имя файла показывает время, когда файл был повернут. Расширение может быть .s
, если файл был благополучно очищен, или .u
, если он мог быть усечен.
Для получения дополнительной информации просто проверьте ссылки.
s , где имя файла показывает время, когда файл был повернут. Расширение может быть .s
, если файл был безопасно очищен, или .u
, если он мог быть усечен.
Для получения дополнительной информации просто проверьте ссылки.
s , где имя файла показывает время, когда файл был повернут. Расширение может быть .s
, если файл был благополучно очищен, или .u
, если он мог быть усечен.
Для получения дополнительной информации просто проверьте ссылки.