Стандартно:
LC_ALL=C find /path ! -name '*[!0-9.]*' -type d
То есть список файлов типа каталог, имя которого не содержит символов, кроме десятичной цифры или .
.
Чтобы использовать динамические имена файлов, вам нужно использовать шаблон. Это имя строки (, обычно DynFile
в примерах ), и интерполирует значения %property%
в строке при использовании. Чтобы использовать шаблон в устаревшем синтаксисе, вам нужно добавить к нему префикс ?
. Попробуйте
$template DynFile,"/var/log/apps/%programname%.log"
:programname, startswith, "myapp-" {
?DynFile
stop
}
Не -устаревший синтаксис немного более явный и иногда может быть более удобочитаемым. На самом деле вы используете встроенный модуль omfile . Осторожно, шаблоны имеют 2 различных применения :как динамические имена файлов и как формат для записи данных. Однако для простых строк они определяются таким же образом, например:
template(name="myfile" type="string"
string="/var/log/apps/%programname%.log")
if ($programname startswith "myapp-") then {
action(type="omfile" dynaFile="myfile")
stop
}
Ключевые слова, такие как dynaFile
, должны быть написаны точно. Обратите внимание, что action()
имеет параметр ключевого слова template=...
. То есть предоставить шаблон для данных, записанных в файл.