2012-05-10 32 views
1

SEDコマンドを使用して、ファイルからrs番号を置き換えようとしています。私はドットでrs145599635交換したいと思います。例えば 、ONLY#で始まらない行のエントリ*私はRSを交換したいと思います特定の行の特定の文字で始まる単語を置き換える方法は?

##reference=file:/hs37d5.fasta 

#CHROM POS  ID  REF  ALT  QUAL FILTER INFO FORMAT SC_PCHD5235298 

1  10234 rs145599635  C  T  153.34 . 

: 私はVCFファイルを持っています。そして#で始まる行であるヘッダを無視したい。

私は

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

関連する問題