管道是不是可以提高运行效率
我们在脚本中有时候有几个AWK SED啥的如果我们用管道 awk '' ufile | sed .... | awk ... > ufile1
像这种是不是指每一条过来,直接运行到完,接着第二条。第三条。。。
还是说全部记录执行完毕,再接着第二个|,第三个|。。。
关健的是,用 “|”连起来是不是可以减少执行时间?特别是记录NN大的时候,会不会很明显?谢谢各位了 恰恰相反....
回复 #2 leetaedong 的帖子
恰 恰 相反?那它具体运行是什么情况呢? 管道越多,可能效率越低.......:em17: 原帖由 yiyouzhou 于 2009-3-18 12:11 发表 http://bbs2.chinaunix.net/images/common/back.gif恰 恰 相反?那它具体运行是什么情况呢?
具体运行在什么情况呢.
有些人, 对这几个工具只懂点皮毛, 要得到自己想要的结果, 就只好并着一起使了.
像很多人就喜欢这样:cat urfile |grep word 或者 more urfile |grep word,
像这样都是 很坏的习惯的.不推荐... 关注一下 原帖由 yiyouzhou 于 2009-3-18 12:03 发表 http://bbs2.chinaunix.net/images/common/back.gif
我们在脚本中有时候有几个AWK SED啥的
如果我们用管道 awk '' ufile | sed .... | awk ... > ufile1
像这种是不是指每一条过来,直接运行到完,接着第二条。第三条。。。
还是说全部记录执行完毕,再接着第二 ...
先执行第一个|,然后第二个,这样|越多肯定效率越低吗???
和做事情是一个道理,比方说:你去一个地方拿三把钥匙,明明可以一下拿回来的,你非要做三次,你觉得效率会很高吗??? 可以减少思考的时间 管道左右的进程应该是并行运行的吧
比如:
sleep 10 | sleep 10
如果两个进程这间输入与输出没有什么关系的话,应该会提高效率
如果有关系,也可以略去临时文件,所以我觉得应该会提高效率,前提是需要两个进程协同工作时,可能多cpu的情况会更好。 原帖由 waker 于 2009-3-18 12:53 发表 http://bbs2.chinaunix.net/images/common/back.gif
可以减少思考的时间
灵活性高一些:)