2011-10-11 119 views

回答

-1

据我所知,管道的数量没有限制,因为命令是一个接一个地执行的。唯一的限制是通过管道传入的数据量或“管道缓冲区限制”。

在这里看到更多的细节:https://unix.stackexchange.com/questions/11946/how-big-is-the-pipe-buffer

+1

可能有'ulimit'来限制允许启动的并发进程数。无论如何,更好的答案是可以只使用一个进程来完成;请参阅@ static_rtti答案的讨论。 – tripleee

+1

管道不是“一个接一个地执行”,而是并行执行。 –

+0

@static_rtti当需要前一个命令的数据时,管道如何并行工作? – ethanpil

1

你问这个问题的事实表明,你正在做的事情是错误的。

首先,如果您想使用大量的正则表达式,正如John所指出的那样,您可以编写一个sed脚本。但为什么你需要这么多的正则表达式?正则表达式不是所有解析任务的最佳匹配,编写实际的解析器或使用解析器生成器可能是更好的解决方案。

+0

有趣,但我必须有可能在短时间内修改常规表达式的数量。我不知道如何以不同的方式做到这一点。 – emanuele

+0

@emanuele,而不是链接多个sed命令,多次对一个sed命令使用'-e'选项。 –

+0

@glenn jackmann:甚至更好,例如使用脚本:'sed“s/a/b /; s/t/g /”'。如果你有很多事情要做,你甚至可以把它们放在一个文件中。 –

相关问题