Как создать многострочную ячейку -с помощью утилиты Unix tbl?

Чтобы сопоставить сообщение и запустить программу, создайте файл, например /etc/rsyslog.d/99-myaudit.conf, с содержимым:

module(load="omprog")
if $msg startswith ' Audit daemon rotating log files' then action(type="omprog" binary="/bin/myprog")

и перезапустите rsyslogd. Я включил пробел в начале строки сообщения, так как он, вероятно, там будет. Если вы предпочитаете, вы можете использовать $msg contains 'Audit daemon rotating'для более слабого совпадения.

Исполняемая программа или сценарий /bin/myprogбудет запущена при совпадении сообщения. Он будет снабжен соответствующими сообщениями на стандартном вводе. Если программа завершается, она будет перезапущена снова при следующем совпадении сообщения.

Вы можете добавить имя файла для сбора выходных данных программы во время тестирования, например action(type="omprog" binary="/bin/myprog" output="/tmp/mylog"). См. omprog .

1
21.01.2021, 02:45
3 ответа

В зависимости от требуемого вывода ниже будет код tbl. Обратите внимание, что вам не нужна опция box.

Я предположил, что вам нужен жирный UC1 во втором столбце первой строки, поэтому использовал суффикс B в столбце.

.TS BOXED LABEL "Table 1: Use Case 1"
tab(@);
l lB, l l, l l, l l, l l
lT l, ^, ^, ^, ^.
_
Use Case Identifier@UC1
_
Title@Login
_
Participating actor(s)@Dental staff member or client
_
Precondition(s)@System is ready to receive requests
_
Parameters@Username, password
_
T{
Flow of events
T}@1. System prompts for username and password
^@2. User submits their username and password
^@3. System logs user in
^@4. User is redirected to homepage
_
.TE
1
18.03.2021, 22:35

Основная проблема заключается в том, чтоT{должен быть в конце строки, точно так же, как }Tдолжен быть в начале строки. Только с этим изменением символа новой строки вы получите:

table1

Вы можете помочь набору текста, указав ширину столбца, используяw(troff_width)(масштаб по умолчанию ens , приблизительную ширину символа «n» в шрифте ). Например, использование l lw(50)для первой строки формата дает:

enter image description here

Обратите внимание, что в примере из документации, чтобы он работал, вы должны заменить строку [[circle]]символом табуляции, как упоминалось ранее.

1
18.03.2021, 22:35

Я также нашел решение самостоятельно (, хотя оно не так близко соответствует моему образцу снимка экрана, как другие решения):

.TS BOXED
box, tab(@);
l | l.
Use Case Identifier@UC1
_
Title@Login
_
Participating actor(s)@Dental staff member or client
_
Precondition(s)@System is ready to receive requests
_
Parameters@Username, password
_
Flow of events@1. System prompts for username and password
\^@2. User submits their username and password
\^@3. System logs user in
\^@4. User is redirected to homepage
.TE

Получается

sample render

|в части l | lуказывает tblразместить вертикальную линию между двумя столбцами.

_указывает tblпровести горизонтальную линию между двумя строками.

tab(@)указывает tblрассматривать символ @как разделитель между ячейками в строке.

\^сообщает tbl, что запись в таблице, находящаяся непосредственно выше, охватывает эту строку вниз.

0
18.03.2021, 22:35

Теги

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