먼저 구별하고 싶습니다.다른 파일 이름으로 명령 반복내가 묻는 건 그게 아니다.
내 질문은 각각 명령의 --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.