Печать значений в специальном формате с помощью printf

Я должен распечатать следующие значения с printf как follwoing вокруг подобного это:

printf "[`date +%d"/"%b"/"%G"-"%T`] [WARN] $PARAM1 $PARAM2 $PARAM3

Необходимый вывод:

[02/Jun/2010-11:08:42] [WARN]  val1....val2...val3

разрыв между val1 к val2 и от val2 до val3 должен быть разрывом константы не, зависят длина значений

1
задан tomlogic 2 June 2010 в 15:32
поделиться

2 ответа

printf "%s [WARN] %s %s %s\n" `date +"%d/%b/%G-%T"` foo bar baz

Не понимаю, что вы имели в виду под постоянным разрывом. Если это ширина столбца для foo , bar и baz , попробуйте % 13s , где 13 - минимальная ширина столбца.

1
ответ дан 3 September 2019 в 00:07
поделиться

Я понял ваш вопрос. Используя другой ответ в качестве основы для своего:

Если вы хотите заполнить каждый из PARAM'ов, то просто добавьте числовой аргумент к printf, и он заполнит его до этого количества символов на поле.

Вставьте 20 символов: printf "%s [WARN] %20s %20s %20s" date +"%d/%b/%G-%T" foo bar baz

Примеры:

printf "%s [WARN] %16s %16s %16s" [`date +"%d/%b/%G-%T"`] foo bar baz

02/Jun/2010-11:22:54 [WARN]              foo              bar              baz

Длиннее...

printf "%s [WARN] %16s %16s %16s" [`date +"%d/%b/%G-%T"`] longerfoo longerbar longerbaz

02/Jun/2010-11:23:42 [WARN]        longerfoo        longerbar        longerbaz

Намного длиннее...

printf "%s [WARN] %16s %16s %16s" [`date +"%d/%b/%G-%T"`] muchlongerfoo muchlongerbar muchlongerbaz

02/Jun/2010-11:24:12 [WARN]    muchlongerfoo    muchlongerbar    muchlongerbaz

Попробуйте это на консоли. Работает.

1
ответ дан 3 September 2019 в 00:07
поделиться
Другие вопросы по тегам:

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