- 论坛徽章:
- 60
|
@jason680@yestreenstars
跟 BEGIN 有关啊. 在awk内部, 凡是通过双引号引起来的, 都是字符串, 而如果是外部传进来的, 就会在内部判断类型
如果外部传递进来的是数字, 则是"数字字符串", 被定义为有 strnum 的属性. STRNUM 与 NUMERIC 比较, 是通过 numeric 操作的.
$ awk -vid='2' '$1==id' FILE , 这个例子, 2传进来是 strnum , $1 也是 strnum, 相比较, 则是通过 numeric 操作的
2
02
$ awk -vid='2' '$1==id""' FILE, 而这个例子, 2传进来是 strnum ,然后 strnum 与 "" 结合, 即是做了字符串串联的方法, 就会变成字符串类型, 实际上就是 STRING, 而 $1 还是 strnum, strnum 与 STRING 做比较运算, 实际上是通过 string 做的比较操作呀
2
id and ""(empty string) are combined together to be a string
$ cat FILE
1
2
01
02
01x
02a
我的理解就是这样的! 还请指教, 下图是手册上说的:
|
|