2012-05-10 72 views
1

我想用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后删除所有内容。

回答

2

你可以用这个试试,

例:

sed -i 's/\(^[^#].*\)rs[0-9]\+\(.*\)/\1rs.\2/' test.vcf 

我改变你的command.You要这样写。

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 . 

我希望这会帮助你。

+0

谢谢:)这回答我的问题。 – user1007742

+0

也许'sed -i“/^#/!s/rs[0-9]\+/rs./g”test.vcf'会在眼睛上更容易一点吗? – potong

相关问题