slurm を使用するコンピューティング クラスター上で個別のジョブとして実行できるスクリプトが多数あります。内容に基づいて、そのうちのいくつかを選択して送信したいと考えています。grep を使用して必要なジョブのファイル名を識別するのは簡単ですが、それらをパイプして送信するのは困難です。
私は次のようなことができると考えました:
grep -l 'regex' script_folder/* | xargs sbatch
ただし、各スクリプトを個別のジョブにしたいのに、すべてのスクリプトを 1 つのジョブとして送信しているように見えます。
答え1
grep -l 'pattern' script_folder/* | xargs -n 1 sbatch
xargs
デフォルトでは、読み取ったすべての内容を使用して指定されたユーティリティを実行する前に、1 つのコマンド ラインに収まるだけ読み取ります。
-n 1
ユーティリティに渡す項目の数を、呼び出しごとに 1 つに制限します。