次のように、コマンドライン(Ubuntu)を介して実行されるbashプログラムがあります。
./extract_field.sh ABC001
ABC001
与えられた形状ファイルから抽出したいフィールドIDはどこにありますか?
複数のIDでこのスクリプトを実行するには、まずファイルに1行に1つのIDを保存しますlist.txt
。
ABC001
ABC014
ABC213
ABC427
次に、次のようにスクリプトを呼び出しますparallel
。
parallel -a list.txt ./extract_field.sh
今まではそんなに良くなった。
extract_field.sh
ただし、1つのパラメータしか必要とせず、2つを必要とするように変更する予定です。このように、1行に2つのパラメータを受け入れるようにテキストファイルを変更すると、上記のワークフローは引き続き機能しますか?
ABC001 arg2a
ABC014 arg2b
ABC213 arg2c
ABC427 arg2d
parallel -a list.txt ./extract_field.sh
この変化で、私は次のように行動したい
./extract_field.sh ABC001 arg2a
./extract_field.sh ABC014 arg2b
など。
そうなんですか?
リクエストする前にテストすることもできましたが、スクリプトのこの変更が完了するまでに数時間かかることがあるので、最初にリクエストすることにしました(単純な変更のように聞こえますが)。
ベストアンサー1
コマンド構文に列区切り文字を指定して、並列機能を使用して単一のコマンドに複数の引数を指定できます。
parallel --colsep ' ' -a list.txt ./extractfield.sh {1} {2}
次の結果を提供します
./extract_field.sh ABC001 arg2a
./extract_field.sh ABC014 arg2b
ファイルに次のものがlist.txt
含まれているとします。
ABC001 arg2a
ABC014 arg2b
あるいは、両方とも複数の位置引数が必要なので、cp
それを使用してテストできます。mv