2011-10-11 158 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 /」'。如果你有很多事情要做,你甚至可以把它們放在一個文件中。 –

相關問題