
나는 그것을 구별하는 것부터 시작하고 싶다.다른 파일 이름으로 명령 반복내가 묻는 것이 아닙니다.
내 질문은 파일 이름 디렉터리가 있고 각각 명령의 --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.