2012-08-30 4 views
0

버전 범위 1.6,1.7을 1.7,1.8로 대체하려고합니다.버전 범위를 sed로 바꿉니다

sed -i 's/version\>[1.6,1.7)/version\>[1.7,1.8)/g' 

나는 탈출 시도 [,) ,. 등등.하지만 여전히 일치하지 않습니다. [1.6,1.7]

무엇이 누락 되었습니까?

이 내가 버전을 대체하기 위해 실행되는 전체 명령입니다 :

find . -iname 'pom.xml' -print -exec sed -i 's/version\>\[1.6,1.7)/version\>[1.7,1.8)/g' {} \; 

GNU 나오지 버전 4.1.5

리눅스 * * 2.6.18-238 # 1 SMP (금) 10월 28일 08 : 42:39 PDT 2011 x86_64에

UPDATE :

sed -i 's/version\>.*1.6,1.7)/version\>[1.7,1.8)/g' 

나를 위해 일했습니다. 하지만 여전히 너무 일반적입니다.

+0

'sed --version'과'uname'의 출력을 포함하도록 게시물을 편집하십시오. 행운을 빕니다. – shellter

+0

@shellter - done. – Fakrudeen

+0

그것이 너무 일반적이라는 것은 무엇을 의미합니까? 'sed'를 편집하고자하는 라인의 예제를 게시하고,'sed'가 변경하지 않을 라인을 게시하십시오. – Thor

답변

0

나는 완전히 이해하지 못한다. 어떤 끈을 맞추려고합니까?

s/version>\[1\.6,1\.7)/version>[1.7,1.8)/g 

>을 탈출 할 필요가 없다, 그러나 특별한 의미를 가지고 있기 때문에 당신은 [와 점을 탈출해야합니다 : 그것은 version>[1.6,1.7) 경우,이 대체 작동합니다.

+0

을 사용하여이 문제를 피했습니다. 올바르지 않습니다. 탈출해야한다는 사실을 알고 있습니다. 문제는 [문자. – Fakrudeen

+0

@Fakrudeen : 게시하기 전에 코드를 테스트했습니다. – choroba

+0

죄송합니다 - 쉘에서 이것을 실행하는 것을 잊어 버렸습니다. >는 리디렉션 연산자이므로 이스케이프 처리해야합니다. – Fakrudeen

관련 문제