2016-04-05 20 views
1

*.vcf, *.vcf.vcfidx ve *.vcf.idx dosyaları /mypath/mydir/ dizininde bulunmaktadır.Bash, farklı dizinlerdeki dosyaların üzerine yazdırılıyor ve baskı çıktısı

vcf-subset -c sample.txt vcffile1.vcf | bgzip -c > output_vcfile1.vcf_.vcf.gz 

birisi baştan Vcf (değil vcf.vcfidx veya vcf.idx) döngü yardım edebilir:

komut bir vcf dosyası için: Sadece (dosyası 1 için) aşağıdaki komutu kullanarak döngü .vcf üzerinde dosyalara istediğiniz dosyalar ve her dosya için çıktıyı, yukarıda gösterilen komut kullanılarak belirlenmiş dizin /get/inthis/dir/'da alınız.

for i in *.vcf; do echo "$i"; done 

glob desen *.vcf.vcf biten dosyaları eşleşir:

cevap

1

Sadece glob desen *.vcf kullanın.

hakimiyetin:

for i in *.vcf; do 
    vcf-subset -c sample.txt "$i" | bgzip -c > /get/inthis/dir/output_"$i"_.vcf.gz 
done 

Eğer örneğin belirli bir dizindeki .vcf dosyaları aramak için varsa /foo/bar/, do:

for i in /foo/bar/*.vcf; do 
    vcf-subset -c sample.txt "$i" | bgzip -c > /get/inthis/dir/output_"${i##*/}"_.vcf.gz 
done 
+0

Teşekkürler, ancak vcf dosyaları için hangi dizinin aranacağını ve çıktı dosyasını yazdırmak için hangi dizinin kullanılacağını belirtiyorsunuz? – MAPK

+0

@MAPK Düzenlemelerimi kontrol et .. – heemayl

+0

Teşekkürler. Yani '$' her. Herhangi bir '.vcf.vcfidx' dosyası üzerinde döngü olmaz mı? Sadece bu açıklığa kavuşturmak istiyorum .. – MAPK

İlgili konular