2012-02-20 3 views
8

sed이있는 간단한 하나의 라이너에 Java 속성 값을 업데이트하고 싶습니다. 자바 속성의 현재 설정이 무엇인지 모른 채, 그리고sed를 사용하여 java 속성 파일의 속성을 업데이트하십시오.

전에

example.java.property=previoussetting 

리눅스의 GNU 나오지 가정

example.java.property=desiredsetting 
+0

[당신이 시도 무엇?] (http://mattgemmell.com/2008/12/08/what-have-you-tried/) –

답변

7

후, 1 해결책이 될 것이다) 비어있을 수 있습니다

편집이 (가) 이스케이프 처리되었습니다. '.' 문자

replaceString=desiredsetting 
sed -i "s/\(example\.java\.property=\).*\$/\1${replaceString}/" java.properties 

켄트

하여 올바른 의견에 따라 즉 s/example\.java.../ 경우

sed "s/\(example\.java\.property=\).*\$/\1${replaceString}/" java.properties > myTmp 
    /bin/mv -f myTmp java.properties 

나는이 도움이 되었으면 좋겠 즉, 당신은 TMP 파일을 관리 할 필요는 -i 준수하지 않습니다 나오지도. 이것은 당신이

sed -i -e "/property.name.1=/ s/=.*/=newValue1/" -e "/property.name.2=/ s/=.*/=newValue2/" yourFile.properties 

지도자가을 나오지 여러 속성

를 업데이트하는 방법입니다

sed -i "/property.name=/ s/=.*/=newValue/" yourFile.properties 

이 새 파일

sed "/property.name=/ s/=.*/=newValue/" yourFile.properties > newFile.properties 

로 인쇄됩니다 :

+0

는 영업 이익이 -1 있지만, 이 대답을 받아 들였다. '점'은 이스케이프 처리되지 않으므로 'ANY 문자'를 의미하므로 파일의 잘못된 속성을 변경할 수 있습니다. 이건 위험 해! – Kent

+0

@Kent : Dangerous는 강력한 용어처럼 보입니다. 하지만 내 게시물을 개선하는 데 도움 주셔서 감사합니다. Hoofamon : 자바 속성에 대한 개선 된 내용을 보려면 개정 된 게시물을 참조하십시오. 모두에게 행운을 빕니다. – shellter

관련 문제