Вы можете комбинировать несколько директив в файле конфигурации.
Например, на основе вашего кода вы определяете фильтр:
filter f_warn { level(warn); };
, затем пункт назначения:
destination remote_log_server {
udp("192.168.0.20" port(25214));
};
и соединить их вместе с чем-то вроде:
log { source(src); filter(f_warn); destination(remote_log_server); };
Очевидно, что вы должны настроить source
, filter
и destination
в соответствии с вашими потребностями.
Я предлагаю вам внимательно прочитать официальное руководство , так как там есть множество опций для настройки ведения журнала.
-) link='https://server123456.eu.somedomain.com/789/storage/uniqueID/uniqueID_db.dat'
-) #.. Remove averything up to last /
-) uid="${link##*/}"
-) echo "${uid}"
uniqueID_db.dat
-) #.. Remove the suffix.
-) uid="${uid%_db.dat}"
-) echo "${uid}"
uniqueID
-)
В разделе 3.5.3 Справочного руководства GNU Bash их множество.
https://www.gnu.org/software/bash/manual/bash.html#Shell-Parameter-Expansion
Если вам нужна пара uniqueID/uniqueID
, это можно сделать с большей осторожностью. Эти конструкции Bash выглядят громоздкими, но они предпочтительнее запуска внешних процессов для редактирования нескольких байтов.
-) link='https://server123456.eu.somedomain.com/789/storage/uniqueID/uniqueID_db.dat'
-) #.. Extract the prefix.
-) pfx="${link%/*/*}"
-) #.. Substring the link from after the prefix.
-) uid="${link:${#pfx}}"
-) echo "${uid}"
/uniqueID/uniqueID_db.dat
-) #.. Clip front and back.
-) uid="${uid#/}"
-) uid="${uid%_db.dat}"
-) echo "${uid}"
uniqueID/uniqueID
-)
Вы можете использоватьawk
:
awk -F '[/_]' '{print $(NF-1)}' file
Или grep
иcut
:
grep -o '[^/]*$' file | cut -d_ -f1
илиgrep -P
:
grep -Po '[^/]*(?=_db.dat$)' file
илиsed
:
sed -E 's/(.*\/)([^/]*)_db.dat$/\2/' file