sed 和 bash 可以使用多个核心吗?

sed 和 bash 可以使用多个核心吗?

我希望在 bash 中使用 sed 替换值时使用多个核心,这可能吗?

答案1

简短的回答是:可能不会。

较长的回答:这确实取决于情况。你的 sed 是什么样的?输入/输出是什么?是多个脚本和多个输入文件吗?然后你可以运行多个实例,并且调度程序可能会将其分发到多个核心上运行。它是一个长输入文件吗?那么答案是可能,但可能不是。

也许您可以将文件拆分成块,并仅在某些严格条件下处理这些块,即您的 sed 不关心行号。对于单个文件和分块的文件,“删除第 2 行”之类的操作非常不同。sed 可以使用状态,如果您拆分文件,则必须保持此编辑状态一致。

答案2

您可以尝试并行运行多个脚本。请参阅此问题:https://unix.stackexchange.com/questions/79501/executing-piped-commands-in-parallel

正如你将在我的回答中看到的那样,多核并不会自动让你获得更快的结果(当然发生)。

答案3

通常,SED 无法做到这一点。如果您想要更好的性能,也许您可​​以尝试使用 AWK 或 Python3。

相关内容