2

GNU parallelを発見したばかりですが、単純な並列タスクの実行に問題があります。複数の値で実行しているシミュレーションがあり、コマンドライン引数を使用して並列に実行するように分割したいと思います。ドキュメントから、コマンドをフィードしたいさまざまな引数parallel mycommand :::: myargfileを含むを並行して実行できるようです。myargfileただし、argsをリストする方法についての情報は見当たらず、次のように機能すると想定しましたmyargfile

--pmin 0 --pmax 0.1
--pmin 0.1 --pmax 0.2
...

mycommand --pmin 0 --pmax 0.1問題なく実行されます。しかし、私が実行するparallel mycommand :::: myargfileと、error: unknown option pmin 0 --pmax 0.1(キャッチされてデコードされた礼儀ブーストプログラムオプション)が得られます。 parallel echo :::: myargfile引数を正しく出力します。これは、プログラムが読み取れず、標準のbashスクリプトのようにフィードされない文字列にラップされているかのようです。

どうしたの?どうすればこれを機能させることができますか?

4

2 に答える 2

1

@DmitriChubarovのhttps://stackoverflow.com/a/6258206/1328439colsepへのリンクをたどると、フラグがないことがわかりました。

parallel --colsep ' ' mycommand :::: myargfile

正常に実行されます。

于 2013-01-20T20:47:47.760 に答える
0

マニュアルとヘルプページを掘り下げた後、私はこの例を思いつきました。おそらくそれはそこに誰かを救うでしょう。:)

#!/usr/bin/env bash

COMMANDS=(
  "cnn -a mode=flat"
  "cnn -a mode=xxx"
  "cnn_x -a mode=extreme"
)

parallel --verbose --progress --colsep ' ' scrapy crawl {.} ::: "${COMMANDS[@]}"
于 2016-09-07T13:23:24.490 に答える