考虑以下需求,用awk获取数值范围内的文件:
结果出错了?问题出在哪里呵
在不理解的情况下,有人试用了双引号:
结果正确。
考虑下$1的实际数值:
说明,这边$1读进去是十进制,读进0405,是十进制405,
而表达式里的0624,实际上是解释成八进制,值是404
所以才有这样的结果
如何让输入接入八进制和十六进制?
看看gnu awk的man有这句:
--non-decimal-data
Recognize octal and hexadecimal values in input data. Use this option with great caution!
再看看加不加的区别
默认情况下是按十进制输入的
加个参数就可以支持八进制和十六进制了
不过还是要分析好数据,以防不慎
另外,加双引号也是可以的,不过
,只不过转化成按字符比较了,
不过用字符问题,是
"12"比"2"小