我需要的printf作为打印以下值follwoing周围是这样的:
printf "[`date +%d"/"%b"/"%G"-"%T`] [WARN] $PARAM1 $PARAM2 $PARAM3
所需的输出:
[02/Jun/2010-11:08:42] [WARN] val1....val2...val3
的val2和从val2次到VAL3 VAL1之间的间隙必须是const间隙不依赖于值的长度
我需要的printf作为打印以下值follwoing周围是这样的:
printf "[`date +%d"/"%b"/"%G"-"%T`] [WARN] $PARAM1 $PARAM2 $PARAM3
所需的输出:
[02/Jun/2010-11:08:42] [WARN] val1....val2...val3
的val2和从val2次到VAL3 VAL1之间的间隙必须是const间隙不依赖于值的长度
printf "%s [WARN] %s %s %s\n" `date +"%d/%b/%G-%T"` foo bar baz
不知道你的间隙不变是什么意思。 如果它是一个列宽foo
, bar
和baz
,尝试%13s
,其中13是最小列宽。
我明白你的问题。 用另一种答案为矿山基地:
如果你想垫每个PARAMS的则只需添加一个数字参数传递给printf和它会垫出来到该号码每场的字符。
垫由20个字符:printf的“%S [WARN]%20S%20S%20S” date +"%d/%b/%G-%T"
FOO酒吧巴兹
例子:
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
试一试在控制台上。 有用。