並列プロセスの実行を待って出力を一緒に接続するには?

並列プロセスの実行を待って出力を一緒に接続するには?

Unixで作業するのは初めてで、次の順序で実行するスクリプトを作成したいと思います。

  • デフォルトの.tsvファイルをインポートしてXファイルに分割します。各ファイルにはY行が含まれています。
  • プログラムで各分割ファイルを実行し、完了すると新しい.tsvファイルを出力します。
  • すべての分割ファイルの処理が完了するのを待ってから、出力ファイルを1つにリンクします。

split私はandを使ってファイルを分割する方法を知っていますsedが、パーティションファイルをPythonスクリプトで実行するのも難しいとは思いませんが、問題は並列プログラムのすべての実行がいつ完了したかを確認してからステッチすることです。それらの出力を1つにします。

私が知る限り、split名前は自動的に増加し、それを大規模に並列化できます。このSOの質問に見られるようにだから、その部分を見つけることができます。並列Pythonスクリプトセットの実行状態を確認する方法はありますか?私がしたいことをどのように達成できますか?

ベストアンサー1

split -l $Y main.tsv main_part_
for part in main_part_*; do
    program $part &
done
wait
echo "all done"

waitbash 組み込み機能です。詳しくはマニュアルページをご覧ください。

おすすめ記事