请教个问题awk

本帖最后由 tomasea 于 2011-06-14 16:11 编辑

[root@localhost scripts]# cat filename
1 2 fsd efdsf
3 4 sfsf dfde
6 3 sdfs sdfsd

awk语句如下
awk '{if($1>$2) print $0}' filename  //这个样是可以实现的,但是我想用如下的方法

awk ‘{a[$1];b[$2]}{for((i in a)&&(j in b))if($i>$j)print $0}' filename
实现的就是比较第一列和第二列的大小,只不过我想用先赋值给数组的方式,但是不知道这样写为什么不行,求高手指教

作者: tomasea   发布时间: 2011-06-14

啥叫比较第一列和第二列的大小,你的输入文本只有一行?

作者: justlooks   发布时间: 2011-06-14

本帖最后由 ywlscpl 于 2011-06-14 16:10 编辑

回复 tomasea


    一定要用数组储存一下?那就这样,很蛋疼
  1. awk '{delete a;delete b;a[$1];b[$2];for (i in a) for (j in b) if (i>j) print}' file
复制代码
对应等价的是
awk '$1>$2' file

作者: ywlscpl   发布时间: 2011-06-14

回复 ywlscpl


    果然是高手,请问一下前面的delet a;delete b是干什么用的

作者: tomasea   发布时间: 2011-06-14