次のスクリプトがあります。
#!/bin/csh
command 1 \
-f \"input1\" \
-l input2 -other_swithes1
command 2 \
-f \"input1\" \
-m input2 \
-l input3 -other_swithes1
command 3 \
-f \"input1\" \
-l input2 -other_swithes2
xargs
その場合は、これらのコマンドを並列に実行する方法を学びます。様々なバリエーションを試してみましたが、すべて失敗しました。私は実際にスクリプトを書きたくありません。 -d スイッチと -c を使用することは可能だと思いますが、わかりません。
問題をさらに簡素化し拡張するために私が持っているもの
cat file | grep -v "#.*" | sed -z 's/[\]\n/ /g' | xargs -I {} -n1 -P10 sh -c '{}'
ジョブの完了中に特別な問題が発生して\"
削除されています。それでは、この問題を解決する手がかりはありませんか?
答え1
GNU Parallelでは、次のことができます。
parallel -d '\n\n' < file.csh
公開:私はこのツールの作成者です。
答え2
答えは次のとおりです。
cat file | grep -v "#.*" | sed -z 's/[\]\n/ /g' | sed -z 's/\"/\\\\"/g' | xargs -I {} -n1 -P10 sh -c '{}'
ありがとう