2012-05-10 4 views
1

SED 명령을 사용하여 파일에서 rs 숫자를 바꾸거나 제거하려고합니다. 가 나는 VCF 파일이 : 난 단지 #로 시작하지 않는 선에서 * 항목을 R을 대체하려는특정 줄에서 특정 문자로 시작하는 단어를 바꾸는 방법은 무엇입니까?

##reference=file:/hs37d5.fasta 

#CHROM POS  ID  REF  ALT  QUAL FILTER INFO FORMAT SC_PCHD5235298 

1  10234 rs145599635  C  T  153.34 . 

를, 예를 들어 난 점으로 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

관련 문제