Как объединить шаблон и исходящий канал в rsyslog.conf?

Если вам не нужно использовать оболочку bash, используйте вместо нее zsh:

make_readme() printf '%s\n' $1 ${(l[$#1][=])}

Где (l[length][string])— левый -флаг расширения параметра заполнения (, который здесь вообще не применяется к параметру ).

Учитывать ширину отображения каждого символа, чтобы лучше работать с текстом, содержащим символы нулевой -ширины или двойной -ширины:

$ make_readme() printf '%s\n' $1 ${(l[$#1*3-${#${(ml:$#1*2:)1}}][=])}
$ make_readme $'Ste\u0301phane'
Stéphane
========
$ make_readme 'FOOBAR'
FOOBAR
============

(это U+FF21..U+FF3A заглавные английские буквы двойной ширины; ваш браузер может не отображать их как двойную -ширину, но ваш терминал должен ).

${(ml:width:)1}дополняет $1до width, принимая во внимание ширину отображения каждого символа, что позволяет нам вычислить ширину отображения $1путем сравнения количества символов в $1с количеством символов, если дополняется вдвое большим количеством символов. Подробнее см. Получение ширины отображения строки символов .

0
21.10.2020, 11:23
0 ответов

Теги

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