Chinaunix

标题: 请教个问题awk [打印本页]

作者: tomasea    时间: 2011-06-14 15:58
标题: 请教个问题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
实现的就是比较第一列和第二列的大小,只不过我想用先赋值给数组的方式,但是不知道这样写为什么不行,求高手指教
作者: justlooks    时间: 2011-06-14 16:02
啥叫比较第一列和第二列的大小,你的输入文本只有一行?
作者: ywlscpl    时间: 2011-06-14 16:08
本帖最后由 ywlscpl 于 2011-06-14 16:10 编辑

回复 1# 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
作者: tomasea    时间: 2011-06-14 16:39
回复 3# ywlscpl


    果然是高手,请问一下前面的delet a;delete b是干什么用的
作者: ywlscpl    时间: 2011-06-14 17:00
回复 4# tomasea


    如果你的数据只有一行,不delete也没关系




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2