コマンドラインパラメータの繰り返し

コマンドラインパラメータの繰り返し

まずは区別したいです。別のファイル名でコマンドを繰り返す私が尋ねるのはそうではありません。

私の質問は、それぞれコマンドの --thingy 部分で始まるファイル名ディレクトリを含む単一のコマンドをどのように作成しますか?私の特定のアプリケーションではGATKを使用しています(この質問はコマンドライン呼び出しの作成に関するものですが)。具体的には遺伝子型GVCF。私の質問は、コマンドが次のようになるはずです。

java -jar GenomeAnalysisTK.jar \
-T GenotypeGVCFs \
-R reference.fasta \
--variant sample1.g.vcf \
--variant sample2.g.vcf \
-o output.vcf

ただし、93の変換ファイルがあるため、この行--variantを毎回別のファイルパスで93回繰り返す必要があります。これらはすべて同じディレクトリにあり、同じ拡張子(* .g.vcf)を持ちます。

私はいくつかのことをしようとしましたが、各結果にfind -exec +追加する方法は思い出されません。有望に見えますが、何がうまくいっているのか理解できず、設定するのが難しいです。この時点では、Pythonスクリプトがコマンドを生成して端末に貼り付けるようにすることもできますが、後でこれを行う「正しい」方法があるかどうか疑問に思います。--variantxargs

答え1

理論的にはこれは役に立つかもしれませんが、私はこのようなことを試したことがありません。私があなたなら、echoプログラムを始める前に、ある種のコマンドでプログラムをテストしますjava

java -jar GenomeAnalysisTK.jar \
-T GenotypeGVCFs \
-R reference.fasta \
$(for v in *.g.vcf;do echo --variant ${v}" \\";done) -o output.vcf

答え2

秘訣は、目的のリストを取得し、各要素に対してアクションを実行することです。バリアントファイルを含むディレクトリに変更してみてください。

FILES=$(ls | sed 's/^/--variant /')
echo ${FILES}

次に、$ {FILES}をコマンドで置き換えます。

HTH。

関連情報