gpt4 book ai didi

awk - 在awk中使用填充将数字转换为字符串

转载 作者:行者123 更新时间:2023-12-04 11:25:40 25 4
gpt4 key购买 nike

我正在尝试将数字转换为 awk 中的字符串。我希望我的字符串左填充零。例如,3 将变成“00000003”。我有以下测试用例:gawk 'BEGIN { CONVFMT = "%08d" ; a = 233 ; print ""a }'233它打印“233”而不是“00000233”。
用 a = 233.0 替换 a = 233 不会改变任何东西。
但是,将 a = 233 替换为 a = 233.1 会改变一切,并且我的单行正确打印了填充字符串:gawk 'BEGIN { CONVFMT = "%08d" ; a = 233.1 ; print ""a }'00000233我错过了什么???

最佳答案

CONVFMT这里不使用。在gawk手册中它说:

As a special case, if a number is an integer, then the result ofconverting it to a string is always an integer, no matter what thevalue of CONVFMT may be. Given the following code:

   CONVFMT = "%2.2f"
a = 12
b = a ""

b has the value "12", not "12.00".


即使使用 233.0,它也不会打印 00000233:
$ gawk 'BEGIN { CONVFMT = "%08d"  ; a = 233.0 ; print ""a }'
233
您应该使用 sprintf实现你想要的:
$ gawk 'BEGIN { a=233; name=sprintf("%08d",a); print name }'
00000233

关于awk - 在awk中使用填充将数字转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68612241/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com