2014-11-10 7 views
0

샘플 입력을 쉼표로 구분 된 목록에 값을 추가합니다 sed와 함께 일해.어떻게 나오지

sed -r -e 's:((^\s*common\.loader\s*=)(([^#\S]*)(#.*)?))$:\1 x \3:' 
+0

실제 예상 출력을 제공 할 수 있습니까? –

+0

당신이 기대하는 바가 명확하지 않아서 기대에 일반적이지 않고 실시간으로 출력되어야하는 것을 입력 할 수 있습니다. – SMA

+1

출력이 추가되었습니다. stackoverflow 많은 코드를 추가 불평 때문에 처음으로 수 없습니다. 그래서 몇 가지 테스트 케이스를 제거했습니다. – wdk

답변

1

당신은 정말 (이 기존의 용어 인에 조건) 조건 쉼표를 할 수없는, 단순한 그냥 쉼표를 추가하기위한 첫 번째 두 대체 할, 그리고 두 번째 =,을 교체 : 가장 가까운 I이었다 있어요 우리는 단지의 나오지 패턴 주소 기능을 사용하여 올바른 라인이 대체 할

sed -re '/^\s*common\.loader\s*=\s*/ {s/(\s*(#|$))/, x\1/; s/=,/=/}' 

참고 : =와.

+1

감사합니다, 당신은 올바른 방향으로 나를 가리켰습니다! 마지막 해결책은'/^\s*common\.loader\s*=\s*/ {s/([^ #] *)/\ 1, x /;입니다. – wdk

+0

첫 번째 줄에 요청한 결과 나 마지막 줄은'# '앞에 공백을 넣고''앞에 놓는다. , x' -하지만 괜찮 으면 좋은 작품. – smathy

+0

만약 당신이 나의 대답을 높이 평가했다면, 여기에 할 일은 투표를하는 것이고, 정말로 당신이 요구 한 바를 정확히 수행했기 때문에 받아 들여진 대답으로 받아 들여야합니다. – smathy