免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: 西门子
打印 上一主题 下一主题

受不了这个速度了! [复制链接]

论坛徽章:
0
21 [报告]
发表于 2006-02-15 18:31 |只看该作者
请教waker:这句没看懂,
awk 'NR==FNR{a[$1]=1} NR>FNR&&a[$2]' a b >c
能简单解释一下吗?
问题:
1;a[]是什么含义
2:a,b两个输入文件时,awk是怎么处理的
谢谢!

论坛徽章:
0
22 [报告]
发表于 2006-02-15 18:43 |只看该作者
对不起。这里已经讨论了:
http://bbs.chinaunix.net/viewthr ... 1%26filter%3Ddigest
刚才没看到。

论坛徽章:
0
23 [报告]
发表于 2006-02-16 00:37 |只看该作者
只要是shell自己跑循环,那速度一肯慢的。

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
24 [报告]
发表于 2006-02-16 11:52 |只看该作者
原帖由 waker 于 2006-2-15 12:32 发表
...
可能是,也可能不是
在我们的GNU grep中我也认为 Fixed会快
但这位老兄不这么认为
http://www.unix.org.ua/orelly/unix/upt/ch27_06.htm

呵呵,理论上讲,-F会使grep在处理正则表达式时少花些时间,所以“应当”会快些。我在centos 4.2上的测试也证实了这一点。
不过我很久以前在RH7.3上的测试也发现该平台下的grep在匹配行很多时,效率比sed/awk/perl低得多,甚至根本不在一个量级上。你给出的连接中的情况也是一个例子。我想会不会是某些平台下的某些版本grep的(糟糕的?)实现方面的问题?希望有其它平台的朋友们测试一下,这是个很有趣的现象。
下面是我以前测试的讨论帖子,感兴趣的朋友可以去看看:
grep 效率比 sed 差好多呀。
抱歉!链接有点问题,已修正。

[ 本帖最后由 woodie 于 2006-2-17 16:57 编辑 ]

论坛徽章:
0
25 [报告]
发表于 2006-02-16 17:29 |只看该作者
-F Treats each specified pattern as a string instead of a regular expression. A
NULL string matches every line.

    Note: The grep command with the -F flag is the same as the fgrep command,
    except that error and usage messages are different and the -s flag functions
    differently.

-f PatternFile Specifies a file containing search patterns. Each pattern should
be separated by a new-line character, and an empty line is considered a NULL
pattern. Each pattern is treated like a basic regular expression (BRE), unless
the -E or -F flag is also specified.

原帖由 西门子 于 2006-2-14 18:53 发表
grep -F -f fileA fileB  
好使。。。。。速度刚刚的。
请问这里-F  含义是什么啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP