Shell 对齐并格式化一列
我有一些脚本的以下输出,它显示了设备、正常运行时间和固件版本 电流输出Shell 对齐并格式化一列,shell,awk,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 正如您所看到的,正常运行时间列的格式不正确(在小时/分
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
正如您所看到的,正常运行时间列的格式不正确(在小时/分钟/秒中没有前导零),我需要很好地格式化它。
我尝试使用split和sprintf,但没有得到任何好的版本,这里有一种方法:
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
为什么它无法在12:34:56
?@AvinashRaj之前添加0
<代码>%02d告诉格式化程序,如果一个数字长度不是2个字符,则填充的前导零不能超过2个。感谢您的解释。