2011-08-15 3 views
0

conf 파일 안에이 줄 pm.max_children = 50를 찾고 pm.max_children = 5으로 바꾸려면 다음과 같이 사용합니다 :conf 파일의 주석 처리 된 행을 잡는 정규식

s/^\(pm.max_children = \).*/\15/

이 경우 줄은 주석이 달라도 상관 없습니다 (';'또는 ' # '). 단일 정규식에서 sed를 사용하여 어떻게 처리 할 수 ​​있습니까?

CONF_FILE에이 내용이있는 경우 :

pm.max_children = 500 
;pm.max_children = 500 
#pm.max_children = 500 

이것은 내가 수행해야하는 것입니다.

pm.max_children = 5 
pm.max_children = 5 
pm.max_children = 5 

답변

1

?를 지원하지 않는 것,하지만 당신은 *을 사용할 수 있습니다 대신 :

s/^[#;]*[:space:]*\(pm.max_children = \).*/\15/ 

이것은 0 이상와 일치합니다. 10 또는 ; 문자 뒤에 0 개 이상의 공백 문자가옵니다.

s/^.*\(pm.max_children = \).*/\15/ 
+0

감사합니다, 노아 : 당신이 당신의 키워드를 앞에하든 상관하지 않는 경우

, 간단하지만 아무것도 일치하는이를 사용합니다. 키워드 앞에 오는 것은 '#', ';'입니다. 또는 아무것도 전혀. 공간이 없습니다. 그래서 나는 이것을 할 수있다.''''''''''\ 15. – Roger

관련 문제