Как я могу увеличить номер, найденный подстановочным знаком в предыдущей команде? (ZSH)

rsyslog упрощает эту задачу, поскольку вы можете сопоставлять аспекты любого приходящего сообщения.

Включите такой фрагмент (в моем случае я поместил файл *. Conf в /etc/rsyslog.d/ ):

if $programname == 'sshd' then {
    if $msg contains 'Invalid user' then { # adjust to your needs
        *.* -/var/log/sshd-fails.log
    }
    stop # discard all other messages from sshd
}

Можно найти документацию здесь .

1
03.09.2018, 12:57
1 ответ

Вам нужна опция extendedglobдля (#b).

Также 05 + 1дает 6, а не 06.

Вы можете сделать (с extendedglobиhistsubstpattern)

^(#b)E(<->)^E${(l:2::0:)$((match[1]+1))}

или:

echo ${_//(#b)E(<->)/${(l:2::0:)$((match[1]+1))}
  • <->является формой оператора сопоставления <x-y>положительных десятичных чисел, в котором обе границы опущены, поэтому соответствует любая не-пустая последовательность десятичных цифр. То же, что и [0-9]##(, но для ##требуется расширенный -глобус, а для <x-y>нет ).
  • (l:2::0:)(обратите внимание, что это строчная буква L, а не цифра 1)— это левый -флаг расширения параметра заполнения, здесь с 0s, длиной 2.
1
27.01.2020, 23:42

Теги

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