用gawk限制十六进制长度

时间:2014-10-23 18:28:06

标签: awk gawk

我正在尝试使用gawk将负十进制转换为最大长度为8的十六进制,如下所示:

echo -1 | awk '{printf "%08X\n", $1}'

在HP-UX 11.31计算机中,这给了我:

FFFFFFFF

在Linux机器中,通过gawk,这给了我:

FFFFFFFFFFFFFFFF

有没有办法用gawk来限制结果的长度?

感谢。

1 个答案:

答案 0 :(得分:0)

您始终可以使用sprintf,然后检查它返回的字符串的长度。

res = sprintf("%08X", $1)
if (length(res) > 8) {
    ...
}