2013-03-04 2 views
-2

죄송합니다. 이전 질문과 관련하여보다 빠른 질문이 하나 있습니다. - 최대 숫자와 범위 사이에 밑줄을 추가하고 싶습니다. 나는 vim에서 이상한 결과를 얻고있다.vim, sed 또는 awk (다시)를 사용하여 텍스트 수정 또는 조작하기

MACS_peak_1 범위는 = chr1 : 569425-569625 5'pad 3'pad = 0 = 0 + 가닥 = repeatMasking = 없음 TTCGCTCTAAGATTAAAAATGCCCTAGCCCACTTCTTACCACAAGGCACA CCTACACCCCTTATCCCTATACTAGTTATTATCGAAACCATCAGCCTACT

MACS_peak_1_range = chr1 행 : 569425-569625 5pad = 0 3'pad = 0 strand = + repeatMasking = none TTCGCTCTAAGATTAAAAATGCCCTAGCCCACTTCTTACCACAAGGCACA CCTACACCCCTTAT CCCTATACTAGTTATTATCGAAACCATCAGCCTACT

감사합니다 해리엇

+1

나는 많은 사람들이 이전 질문했다 당신의 예상 출력이 동일한 것으로 보인다 무엇을 알고있는 경우 의심 귀하의 견본 입력. 그렇지 않은 경우 실제 문제를보다 명확하게 강조하는 샘플 입력을 생각해보십시오. 입력 내용이 100 자 이상이거나 문제를 설명하기 위해 게시 한 내용이 무엇이든간에 의심 스럽습니다. –

+0

빔 : : % s/\ (\ d \) 범위/\ 1_range/ – solarc

+0

[sed, awk 또는 vim을 사용하여 텍스트 수정/조작] 중복 가능 (http://stackoverflow.com/questions/15199399/modifying- 텍스트 사용하기 - awk-or-vim) – Kent

답변

1
awk '/MACS_peak/{$1=$1"_"$2;$2="";}1' your_file 
0

쉘이 시도 :

sed -i s/"MACS_peak_1 range"/"MACS_peak_1_range"/g <filename> 
+0

'g' 플래그를 버리는 것이 훨씬 더 간단합니다. 실제로, 당신은 아마'sed 's// _ /''로 빠져 나올 수 있습니다. –

+0

'sed 's// _ /''는 모든 공백을 대체합니다. 나는 단지 원하는 공간 만 교체하고 싶었습니다. 오직 하나의 사건 만 있다면'g' 플래그없이 잘 동작합니다. – niculare

+0

아니요'sed 's// _ /''는 첫 번째 공백 만 대체합니다. 'sed 's// _/g''는 모든 공백을 대체 할 것입니다. –

관련 문제