awk的奇怪行为
我遇到了awk的以下行为,这让我非常困惑:awk的奇怪行为,awk,Awk,我遇到了awk的以下行为,这让我非常困惑: echo "" | awk '{print 15}' 输出 15 13 但是: 输出 15 13 用013、0013、0105和0130替换015分别得到11、11、69和88。浮点数按预期工作,带或不带前导零 我观察到GNU Awk版本3.1.7、4.0.2和4.1.3的这种行为 有人能理解这一点吗?预期的015被视为八进制值 echo "" | awk '{print 015}' ##Octal 13 echo "" | awk '{pr
echo "" | awk '{print 15}'
输出
15
13
但是:
输出
15
13
用013、0013、0105和0130替换015分别得到11、11、69和88。浮点数按预期工作,带或不带前导零
我观察到GNU Awk版本3.1.7、4.0.2和4.1.3的这种行为
有人能理解这一点吗?预期的
015
被视为八进制值
echo "" | awk '{print 015}' ##Octal
13
echo "" | awk '{print 15}' ##Decimal
15
echo "" | awk '{print 0x15}' ##Hex
21
编辑:在此处添加jas在评论中发布的漂亮链接预计
015
将被视为八进制值
echo "" | awk '{print 015}' ##Octal
13
echo "" | awk '{print 15}' ##Decimal
15
echo "" | awk '{print 0x15}' ##Hex
21
编辑:在此处添加jas在评论中发布的漂亮链接只是一个提示:如果您想在不需要任何输入的情况下执行一些awk代码,请使用BEGIN块
awk 'BEGIN {
print 015
print 15
print 0x15
}'
提示:如果您想在不需要任何输入的情况下执行一些awk代码,请使用BEGIN块
awk 'BEGIN {
print 015
print 15
print 0x15
}'
基数8中的15==基数10中的13。参见这里:好,这就解释了it@jas,谢谢你分享,我一直在找,最后我自己写了,谢谢。15以8为基数==13以10为基数。看这里:好的,这就解释了it@jas,谢谢分享,我一直在找,最后还是自己写的,谢谢。