如何等待并行化进程的执行并将输出拼接在一起?

Bef*_*all 5 sed split

在 Unix 上做事情很新,希望制作一个按顺序执行以下操作的脚本:

  • 取主 .tsv 文件,分成 X 个文件,每个文件有 Y 行
  • 通过程序运行每个拆分文件,完成后输出一个新的 .tsv 文件
  • 等到所有分割文件处理完毕,然后将输出文件拼接成一个。

我知道使用splitsed分割文件,我无法想象让分割文件通过 Python 脚本运行也很难,但问题是找出并行化程序的所有执行何时完成,然后拼接它们的输出合二为一。

随着split我知道它自动递增的名字,以及是否可以并行质量它在这太问题见过,所以我可以计算的那部分。有没有办法检查一组并行化的 Python 脚本的执行状态?我怎样才能完成我想做的事?

gle*_*man 3

split -l $Y main.tsv main_part_
for part in main_part_*; do
    program $part &
done
wait
echo "all done"
Run Code Online (Sandbox Code Playgroud)

wait是 bash 内置函数:查看手册页了解详细信息