2017-11-14 1 views
-1

는 그래서 임하려고 노력하는 것은 내가 전 세계적으로 변경할 필요가 그것의 다음 매개 변수를 파일 (들)을 가지고있다 : 나는 변경해야변수는 문자열을 대체 할

level value="something" 

그들 모두에게 : - :

level value="ABC" 
level value="DEF" 
level value="GHI" 
level value="I DONT KNOW" 
,691

level value="somethingelse" 

내 루프 문제와 sed 스크립트를 가지고 임 내가 파일에 같은 값을 갖고 있다고 할 수 있습니다

나는 그들 모두가 될 필요 :

level value="XYZ" 

것은 내가 레벨의 모든 값이 무엇인지 잘 모릅니다, 그들은 아무것도 될 수 있습니다. 그러므로 왜 내가 그들을 한 수준의 가치로 표준화하려고하는지. 루프와 sed로 이것을하는 방법이 있습니까? 도움에 감사드립니다.

+0

어떤 것과도 일치하는 정규 표현식 작성법을 모르십니까? 가장 기본적인 것 중 하나입니다. – Barmar

+0

그렇지 않으면 regular-expression.info에서 정규 표현식 자습서를 읽으십시오. – Barmar

+0

BTW, 실제 입력이 XML 인 경우 작업에 사용할 수있는 더 나은 도구가 있습니다. 'xmlstarlet ed -u // level/@ value '와 같이 간단 할 수도 있습니다 -v XYZ out.xml' –

답변

0

이 시도 : 비 " 문자 다음에 때

sed 's/\(level value="\)[^"]*/\1XYZ/' file 

level value="이 캡처됩니다. 역 참조를 사용하면 캡쳐 된 문자열이 출력되고 새로운 값인 XYZ이 출력됩니다.

관련 문제