请教个问题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
实现的就是比较第一列和第二列的大小,只不过我想用先赋值给数组的方式,但是不知道这样写为什么不行,求高手指教
[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
一定要用数组储存一下?那就这样,很蛋疼
复制代码
对应等价的是
awk '$1>$2' file
回复 tomasea
一定要用数组储存一下?那就这样,很蛋疼
- 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是干什么用的
果然是高手,请问一下前面的delet a;delete b是干什么用的
作者: tomasea 发布时间: 2011-06-14