3

$hosts_string次の形式で呼び出される変数を持つ C シェル スクリプトがあります。

host1,host2,...,hostN

$chrs_string次の形式の変数もあります。

chr1,chr2,...,chrM

$inputFnまた、処理する必要があるテキスト ファイルを指定するという変数もあります。

私がやりたいのは、入力ファイル名の引数として、各ホストが のdoStuff各メンバーに対して呼び出されるコマンド$chrs_stringを実行することです。$inputFn

私は次のことを試しました:

parallel -S $hosts_string 'doStuff {1} {2} > {1}' ::: {$chrs_string} ::: {$inputFn}

これが機能する場合、コマンドからの出力としてchr1ファイルが作成されるはずですが、何も得られません。Parallel はエラーを発行せずに完了しますが、出力はありません。chrMdoStuff

を使わなくてもコマンド自体は正常に動作するparallelので、コマンドではなく、 に引数を指定する方法ですparallel

これを確認するために、次のことを試しました。

parallel -S $hosts_string 'echo {1} {2} > {1}' ::: {$chrs_string} ::: {$inputFn}

これが機能し、(たとえば)である場合 (たとえば)次の文字列を含むというファイルを取得します。$inputFn/foo/barchr1

chr1 /foo/bar

と の各組み合わせを正しくparallelループするようにコマンドを調整するにはどうすればよいですか?$chrs_string$inputFn

4

1 に答える 1

1

あなたは近くにいます。::: は :::: と同じではないことを忘れました

parallel -S $hosts_string 'echo {1} {2} > {1}' ::: {$chrs_string} :::: {$inputFn}

エコーでファイル名だけが必要な場合は、次のようにします。

parallel -S $hosts_string echo '{1}' {$inputFn} '> {1}' ::: {$chrs_string}
于 2013-02-16T01:30:39.410 に答える