我正在尝试使用SED命令替换/删除文件中的rs号。 我有一个VCF文件:
##reference=file:/hs37d5.fasta
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT SC_PCHD5235298
1 10234 rs145599635 C T 153.34 .
我想在不以#开头的行上替换rs *条目, 例如,我想用点替换rs145599635。并希望它忽略标题,这些标题以#。
开头我试过
sed "/^[^#]/s/rs.*/./g" test.vcf
但它删除了rs之后的所有内容。
答案 0 :(得分:2)
你可以试试这个,
例如:
sed -i 's/\(^[^#].*\)rs[0-9]\+\( .*\)/\1rs.\2/' test.vcf
我改变了你的命令。你必须这样写。
sed -i "/^[^#]/s/rs[0-9]\+/rs./g" test.vcf
我的test.vcf文件看起来像这样。我认为你的文件只是这样。
##reference=file:/hs37d5.fasta
#rs145599635 C T 153.34 .
#1 10234 rs145599635 C T 153.34 .
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT SC_PCHD5235298
1 10234 rs145599635 C T 153.34 .
我希望这会对你有所帮助。