我想提取以 1/1 开头的所有行在“12345”栏并使用 awk 命令将这些行放入新文件 (-> Newfile.vcf.gz) 中,使第一个 file.vcf.gz 保持不变。我的文件是 file.vcf.gz,请告诉我是否需要先将其转换为其他文件。
例如
#CHROM POS ALT 12345
1 345632 T 0/1:4,4:8:99:105,0,106
4 032184 C 1/1:46,9:55:99:99,0,1222
6 843290 A 0/1:67,20:87:99:336,0,1641
预期结果
4 032184 C 1/1:46,9:55:99:99,0,1222
答案1
在 awk 中,您可以使用正则表达式。/^1\/1/
如果第 4 列以以下内容开头,则将匹配1/1
:
zcat file.vcf.gz | awk '$4 ~ /^1\/1/ {print}' | gzip -c > new.vcf.gz
但如果/
只能出现在第 4 列,为什么不直接使用 呢grep
?
zgrep "1/1" file.vcf.gz | gzip -c > new.vcf.gz