- 论坛徽章:
- 0
|
在awk中可以使用 if ($i in a) 这种语法判断一个元素是不是在数组a中吗?
在论坛中的一篇帖子中(http://bbs.chinaunix.net/thread-3629239-1-1.html),作者给出两个文件
文件file
10/05766798607,11/20050325191329,29/0.1,14/05766798607
10/05767158557,11/20050325191329,29/0.08,14/05767158557
文件list
05766798607
05766798608
05766798609
执行命令1
awk 'BEGIN{RS=",|\n";FS="/"}NR==FNR{a[$1]=$1}NR>FNR{for(i in a){if($2 == a)print $0}}' list file
可以得到
10/05766798607
14/05766798607
而执行命令2
awk 'BEGIN{RS=",|\n";FS="/"}NR==FNR{a[$1]=$1}NR>FNR{if($2 in a)print $0}' list file
却只能得到
14/05766798607
如果说if ($i in a)这种语法是正确的,应该得到同命令1相同的结果才对啊。
但如果说这种语法是错误的,我看到很多大牛都这么用。
那到底这种用法对不对? 还是另有玄机? |
|