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以降はすべて削除されます。

4

1 に答える 1

3

これで試すことができます、

元:

  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  .

これがお役に立てば幸いです。

于 2012-05-10T12:05:30.553 に答える