我想在c shell中打印3位数字,如001,002,...不是1,2,...
但是当我使用下面的例子时,我的数字只有3位数。
所以我想知道如何将3位数字打印为001而不是1。
如何在c shell中用3位数字打印?
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<appender name="WINFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>C:/logs/logfile.log</File>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{HH:mm:ss.SSS} %-5level %logger - %msg%n</pattern>
</layout>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>C:/logs/logfile-%d{yyyy-MM-dd}-%i.txt</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>2MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
<appender-ref ref="WINFILE" />
</root>
</configuration>
结果
0
1
...
100
...
400
还有一个问题。如果我想将它指定为“printf'Welcome%03d times'$ j”本身的差异。 像这样,
#!/bin/csh -f
set j = 1
while ( $j <= 400 )
echo "Welcome $j times"
@ j++
end
如果我想将3digit数分配给k方差,就像这样k = 003而不是k = 3。 我该怎么办?
当我运行下面的代码时,我总是万不得增加。
set j = 1
set k
while ( $j <= 400 )
printf 'Welcome %03d times' $j
k = printf 'Welcome %03d times' $j
@ j++
end
答案 0 :(得分:0)
#!/bin/csh -f
set j = 1
while ( $j <= 400 )
printf 'Welcome %03d times' $j
@ j++
end
不确定csh,但它应该可以正常工作
答案 1 :(得分:0)
对于你的第一个问题,答案是亚历山大写的:
#!/ bin / csh -f
设置j = 1
而($ j <= 400)
printf&#39;欢迎%03d次&#39;附加$ J
@ j ++
结束
对于你的第二个问题,你可以这样做:
&GT; set test =`perl -e&#39; print(sprintf(&#34;%03d&#34;,3))&#39;`
&GT; echo $ test
003
见http://www.brendangregg.com/Guess/guess.csh
为了将vars传递给perl one liner,请参见下面的行
How do I best pass arguments to a Perl one-liner?