2012-05-10 71 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

相關問題