免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2310 | 回复: 4

请教个问题awk [复制链接]

论坛徽章:
0
发表于 2011-06-14 15:58 |显示全部楼层
本帖最后由 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
实现的就是比较第一列和第二列的大小,只不过我想用先赋值给数组的方式,但是不知道这样写为什么不行,求高手指教

论坛徽章:
0
发表于 2011-06-14 16:02 |显示全部楼层
啥叫比较第一列和第二列的大小,你的输入文本只有一行?

论坛徽章:
0
发表于 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

论坛徽章:
0
发表于 2011-06-14 16:39 |显示全部楼层
回复 3# ywlscpl


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

论坛徽章:
0
发表于 2011-06-14 17:00 |显示全部楼层
回复 4# tomasea


    如果你的数据只有一行,不delete也没关系
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP