对齐并格式化一列

时间:2014-05-27 12:50:56

标签: shell awk

我有一些脚本的输出,显示设备,正常运行时间和固件版本

当前输出

device1  12:34:56 version  
device2  1:2:3    version  
...  
deviceN  H:MM:S   version  

预期输出

device1  12:34:56 version  
device2  01:02:03 version  
...  
deviceN  HH:MM:SS version  

正如您所看到的,Uptime列格式不正确(小时/分钟/秒没有前导零),我需要很好地格式化它。 我试图使用split和sprintf,但未能获得任何好的版本

1 个答案:

答案 0 :(得分:2)

这是一种方法:

awk '{split($2,a,":");$2=sprintf("%02d:%02d:%02d",a[1],a[2],a[3])}1' file
device1 12:34:56 version
device2 01:02:03 version

它会拆分日期字段,然后使用%02d获取前导0