我的文件具有以下格式:
1/2/2559,11:58:00,4/1/2559,09:36:04,10,55,My Name
我只想使用 awk 来(除其他外)左垫,只有第 6 列为零。
例如,输出可以是:
My Name,1/2/2559/11:58:00,10,0055,4/1/2559,09:35:04
因此,在上面的示例中,第 5 列和第 6 列都是数字字段,但我只想左边填充其中一个字段。
到目前为止,我从其他帖子中获得的 printf 示例(例如使用 printf ($7,$1,$2,$5,"%04dn",$6,$3,$4)
似乎涵盖了所有字段,或者在到达要左填充的字段时终止当前行。
希望对此提供一些指示,谢谢。
这与您发布的预期输出不匹配,但我看不出您如何从您发布的输入中获得它,所以这可能是您正在寻找的:
$ awk -F, '{printf "%s,%s,%s,%s,%04d,%s,%sn",$7,$1,$2,$5,$6,$3,$4}' file
My Name,1/2/2559,11:58:00,10,0055,4/1/2559,09:36:04
如果没有,请编辑您的问题以解释示例输入和预期输出之间的映射。
还要考虑:
$ awk 'BEGIN{FS=OFS=","} {$6=sprintf("%04d",$6)} 1' file
1/2/2559,11:58:00,4/1/2559,09:36:04,10,0055,My Name