
저는 xml과 npp를 처음 접한다는 점을 명심하세요.
수천 개의 레코드가 포함된 대형 xml 파일이 있는데 다른 프로그램에서 작동하도록 하려면 줄을 변경해야 합니다.
대부분의 형식 변환을 완료했지만 이제 문제가 발생했습니다.
내 XML은 지금 어떻게 생겼습니까?
</Value>
<name>C01</name>
<description>TEXT WITH VARYING NUBMER OF CHARACTERS FOR EACH LINE</Value>
</DPR>
그리고 내가 원하는 것:
<DPR>
<name>C01</name>
<description>TEXT WITH VARYING NUBMER OF CHARACTERS FOR EACH LINE</description>
</DPR>
문제는 </Value>
독립형 문자열에 있는지에 따라 두 가지 다른 것으로 교체하는 것입니다. 두 번째 문제는 줄의 일부를 바꾸고 나머지는 유지하는 것입니다. 유지하려는 부분의 문자 수가 줄마다 다를 때입니다.
모든 도움이 매우 감사합니다!
답변1
줄에 단독으로 존재할 경우 </Value
다음으로 교체 :</DPR>
무엇을 찾다:^ *</Value>
다음으로 교체:</DPR>
검색 모드: 정규식
</Value>
그 이후에는 문자열과 함께 있는 것 이외 의 다른 인스턴스가 있어서는 안 되므로 이를 교체하는 것은 간단합니다. 하지만 완전성을 위해서...
[somestringhere]</Value
-> [somestringhere]</description>
가 한 줄에 단독으로 존재하는 경우 교체 :
무엇을 찾다:^(<description>.+?)</Value>
다음으로 교체:$1</description>
검색 모드: 정규식
위에서는 ^
줄의 시작을 의미하며, *
공백이 존재할 수도 있고 존재하지 않을 수도 있음을 .+?
의미하며, 그 다음 문자열이 처음 나타날 때까지의 모든 문자를 의미합니다(정규식에 대한 자세한 내용은 여기를 참조하세요.), $1
대체 문자열에서는 소스 데이터의 괄호 안에 일치하는 부분으로 대체됩니다.
답변2
가장 쉬운 방법은 Perl에서 정규식을 사용하는 것입니다.
perl -i -p -e 's/</Value>\n<name>/<DPR>\n<name>/' yourfile.txt