Awk 将整数格式编程为 01 而不是 1



要将输出从2012 1 5更改为20120105,是否足以从

ls $run |xargs sed q |awk '{print $1,$2,$3} ' >> stin-2

ls $run |xargs sed q |awk '{printf "%2.2i" $1,$2,$3} ' >> stin-2

如果你使用printf()(这可能是获得你想要的输出的正确),你应该使用尽可能多的转换说明符,就像你在C中一样。

awk '{printf "%.4d%.2d%.2dn", $1, $2, $3}'

注意格式后面的逗号;这是至关重要的。 示例代码省略了它,因此它将给定的格式字符串连接起来,并$1作为格式字符串,然后给定两个参数。 您可能还需要换行符,printf()不会自动添加换行符(与print不同)。 选择%d而不是%i是任意的;它们是一样的。 %.2d的使用并非完全是任意的;它达到了与%2.2d相同的效果,但使用更少的字符来完成这项工作。

这个答案并没有试图解决你试图做的事情在更大范围内是否明智;它只是展示了假设它需要完成的情况下如何/应该完成。 还有一个假设是字段之间有一个空格用于2012 11 25

最新更新