我awk
需要解析百分比数字(带有尾随“%”)并检查它们是否超过特定百分比。
正常解析只是忽略任何尾随字符,例如:
% echo "99%" | awk '{print ($1 + 0)}'
99
当然,由e
和 数字组成的字符串除外:
echo "99e4" | awk '{print ($1 + 0)}'
990000
这种行为是否稳定并且对于不同的 s 是相同的awk
,还是建议显式删除%
?
答案1
是的,这是跨 AWK 实现的稳定行为。它记录在GNU AWK 手册如下:
通过将字符串的任何数字前缀解释为数字,将字符串转换为数字:
"2.5"
转换为 2.5、"1e3"
转换为 1,000、"25fix"
数值为 25。无法解释为有效数字的字符串将转换为零。
它还记录了,尽管更冗长,在 POSIX 规范中awk
。