まずは区別したいです。別のファイル名でコマンドを繰り返す私が尋ねるのはそうではありません。
私の質問は、それぞれコマンドの --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スクリプトがコマンドを生成して端末に貼り付けるようにすることもできますが、後でこれを行う「正しい」方法があるかどうか疑問に思います。--variant
xargs
答え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。