ich mehrere .vcf.gz Dateien haben:Bash Schleife Datei gunzip und Dateierweiterung und Datei entfernen Präfixe
subset_file1.vcf.vcf.gz
subset_file2.vcf.vcf.gz
subset_file3.vcf.vcf.gz
ich diese Datei gunzip wollen und benennen Sie sie (entfernen subset_
und redudant .vcf
Erweiterung in einem Rutsch und nutzen Sie diese Dateien:
file1.vcf
file2.vcf
file3.vcf
Dies ist das Skript, das ich versucht habe:
iFILES=/file/path/*.gz
for i in $iFILES;
do gunzip -k $i > /get/in/this/dir/"${i##*/}"
done
Ich schlage vor, den sed Befehl ändert die Zeichenfolge "Teilmenge" explizit zu verwenden ('s/Teilmenge _ \ (. * \) \ (\. [Az] \ {3 \} \) \ {2 \} . */\ 1 \ 2/g'), um gierige '. *' Für Dateinamen mit Unterstrichen zu vermeiden. – eff
Ja, guter Vorschlag. Oder wechseln Sie zu 'sed 's/[^ _] \ + _ \ (. * \) \ (\. [Az] \ {3 \} \) \ {2 \}. */\ 1 \ 2/g' 'verschiebe das erste Präfix – alijandro