免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1963 | 回复: 11
打印 上一主题 下一主题

如何在UNIX下将同样的记录筛选出来? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-11 12:07 |只看该作者 |正序浏览
1 tr=2580 no=123456789 ec=1295.00
2  tr=2580 no=321456789 ec=321.50
3  tr=2580 no=123456789 ec=129.00
4  tr=2580 no=123456789 ec=125.00
5  tr=2580 no=612345890 ec=1295.00

....
如何将其中的tr=2580 no=????(即no=后面的数字相同) 的记录筛选到另外一个文件中去

[ 本帖最后由 abclhx 于 2005-12-11 12:09 编辑 ]

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
12 [报告]
发表于 2005-12-14 23:15 |只看该作者
原帖由 abclhx 于 2005-12-14 20:57 发表
上面的我都试了不行啊

嗯,
1,描述清楚你的平台?
2,描述你的shel类型l?
3,描述你的操作步骤?
4,一句"不行",让大家摸不着头脑!  :={

论坛徽章:
0
11 [报告]
发表于 2005-12-14 23:15 |只看该作者
看我的超级AWK
算法太慢了,用了n个循环,,呵呵1!

  1. #!/bin/awk -f
  2. #
  3. #

  4. $2 ~ /tr=2580/{
  5.         data[NR] = $0;
  6.         a[$3] = a[$3]" "NR;
  7.         if( $3 in a )
  8.         {
  9.                 sum[$3]++;
  10.         }
  11. }
  12. END{
  13.         for( i = 1; i <= NR; i++ )
  14.         {
  15.                 for( j in sum )
  16.                 {
  17.                         if(sum[j] > 1)
  18.                         {
  19.                                 num = split(a[j], tmp, " ")
  20.                                 for( m = 1; m<= num; m ++ )
  21.                                         b[tmp[m]];
  22.                                 if( i in b )
  23.                                         print data[i];
  24.                         }
  25.                 }
  26.         }
  27. }
复制代码

论坛徽章:
0
10 [报告]
发表于 2005-12-14 21:21 |只看该作者
原帖由 abclhx 于 2005-12-14 20:57 发表
上面的我都试了不行啊


环境不同

论坛徽章:
0
9 [报告]
发表于 2005-12-14 20:57 |只看该作者
上面的我都试了不行啊

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
8 [报告]
发表于 2005-12-11 23:23 |只看该作者
原帖由 dbcat 于 2005-12-11 20:15 发表


哇塞,我有fans了!
感动中....................................


  1. awk '/1.......9/' file
复制代码
/home/lee#cut -f4 -d' '<a|sort|uniq -d|xargs -i grep {} a
1  tr=2580 no=123456789 ec=1295.00
3  tr=2580 no=123456789 ec=129.00
4  tr=2580 no=123456789 ec=125.00
/home/lee#awk 'a[$3]++' a
3  tr=2580 no=123456789 ec=129.00
4  tr=2580 no=123456789 ec=125.00

为什么会这样?

论坛徽章:
0
7 [报告]
发表于 2005-12-11 20:15 |只看该作者
原帖由 寂寞烈火 于 2005-12-11 17:42 发表

美女帮帮主的写法:

  1. cut -f4 -d' ' <filenanme|sort|unid -d|xargs -i grep {} filename
复制代码

BTW:现在在win$下,没式!


哇塞,我有fans了!
感动中....................................


  1. awk '/1.......9/' file
复制代码
wayy2008 该用户已被删除
6 [报告]
发表于 2005-12-11 19:23 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
5 [报告]
发表于 2005-12-11 17:58 |只看该作者
原帖由 寂寞烈火 于 2005-12-11 17:42 发表

美女帮帮主的写法:

  1. cut -f4 -d' ' <filenanme|sort|unid -d|xargs -i grep {} filename
复制代码

BTW:现在在win$下,没式!



我觉得好像有点问题吧
cut -f4 -d' ' <filenanme|sort|unid -d|xargs -i grep {} filename
1.  应该是f3
2. 应该是uniq吧

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-12-11 17:42 |只看该作者
原帖由 大蚂蚁 于 2005-12-11 16:12 发表

grep 应该也可以

美女帮帮主的写法:

  1. cut -f4 -d' ' <filenanme|sort|unid -d|xargs -i grep {} filename
复制代码

BTW:现在在win$下,没式!
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP