免费注册 查看新帖 |

Chinaunix

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

管道是不是可以提高运行效率 [复制链接]

论坛徽章:
20
CU大牛徽章
日期:2013-04-17 11:48:26羊年新春福章
日期:2015-03-10 22:39:202015年中国系统架构师大会
日期:2015-06-29 16:11:282015亚冠之平阳省
日期:2015-07-31 09:19:042015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-09-30 06:20:002015亚冠之柏太阳神
日期:2015-10-19 20:29:5915-16赛季CBA联赛之天津
日期:2016-11-29 14:03:4315-16赛季CBA联赛之北控
日期:2016-12-24 20:51:492015年辞旧岁徽章
日期:2015-03-03 16:54:15双鱼座
日期:2015-01-12 20:58:532014年中国系统架构师大会
日期:2014-10-14 15:59:00
31 [报告]
发表于 2009-03-18 23:41 |只看该作者
原帖由 haimming 于 2009-3-18 23:32 发表
waitting....除非有其它原因造成破裂了



如何理解

论坛徽章:
0
32 [报告]
发表于 2009-03-18 23:45 |只看该作者
一边完成了,别一边没完成的话,完成了的会等着啊

论坛徽章:
0
33 [报告]
发表于 2009-03-19 10:23 |只看该作者
管道pipe是UNIX的一大发明,由UNIX大师Doug  McIlroy发明,体现一种UNIX下的编程哲学“一个程序只做一件事情,并做好。”
windows 下自带的dir /s /w等就与这个相背离。

论坛徽章:
0
34 [报告]
发表于 2009-03-19 10:29 |只看该作者
原帖由 leetaedong 于 2009-3-18 12:16 发表

具体运行在什么情况呢.

有些人, 对这几个工具只懂点皮毛, 要得到自己想要的结果, 就只好并着一起使了.

像很多人就喜欢这样:  cat urfile |grep word 或者 more urfile |grep word,
像这样都是 很坏的 ...



汗。。。我就有这种很坏的习惯

论坛徽章:
0
35 [报告]
发表于 2009-03-19 11:18 |只看该作者
原帖由 leetaedong 于 2009-3-18 12:16 发表

具体运行在什么情况呢.

有些人, 对这几个工具只懂点皮毛, 要得到自己想要的结果, 就只好并着一起使了.

像很多人就喜欢这样:  cat urfile |grep word 或者 more urfile |grep word,
像这样都是 很坏的 ...

没明白是什么意思,貌似我经常cat urfile |grep word 或者 more urfile |grep word,的,可是不着样做有什么更好的办法吗?

论坛徽章:
0
36 [报告]
发表于 2009-03-19 11:33 |只看该作者

回复 #35 locale 的帖子

可以直接grep ... file呀

论坛徽章:
0
37 [报告]
发表于 2009-03-19 11:49 |只看该作者
原帖由 dream3401 于 2009-3-19 11:33 发表
可以直接grep ... file呀

真有这个毛病

论坛徽章:
1
寅虎
日期:2014-11-30 21:25:54
38 [报告]
发表于 2009-03-19 21:58 |只看该作者
原帖由 leetaedong 于 2009-3-18 12:16 发表

具体运行在什么情况呢.

有些人, 对这几个工具只懂点皮毛, 要得到自己想要的结果, 就只好并着一起使了.

像很多人就喜欢这样:  cat urfile |grep word 或者 more urfile |grep word,
像这样都是 很坏的 ...

正确的是
$ grep 'some word' urfile
但是更方便的是
$ <urfile grep 'some word'
这样可方便改 grep 的参数

还有经常用的
$ cat urfile | grep 'some word' | wc -l
其实直接可以用
$ <urfile grep -c 'some word'

论坛徽章:
0
39 [报告]
发表于 2009-03-21 00:15 |只看该作者
据我所知,管道的一个作用的就是协同~~
不用等到第一个命令全部执行完采取执行第二个命令。
当第一个命令产生的部分结果已经做够第二个命令开始执行,那么,第二个命令就开始执行。
这样,就实现了多线程执行。
使用SAS做巨量数据处理时,经常使用这种方式,打开多个管道。但是管道的数量和效率跟计算机的硬件和程序直接相关,没有多就好或者少就好的说法。
如果出入,还请专家斧正~~

论坛徽章:
0
40 [报告]
发表于 2009-03-21 10:22 |只看该作者

回复 #31 beyondfly 的帖子

进程是同时启动的,不过管道右边的进程启动后会一直等待输入(假设它需要输入),也就是管道左边程序的输出
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP