Notepad++ CS 스크립트는 줄을 반복하고 특정 값을 변경합니다.

Notepad++ CS 스크립트는 줄을 반복하고 특정 값을 변경합니다.

이전에 Notepad++에서 CS 스크립트를 사용한 적이 없지만 스크립트를 생성해야 하는 여러 개의 대용량 파일을 작업하고 있습니다. 나는 보통 Excel에서 작업하고 VBasic을 사용하지만 파일이 너무 커서 Excel에서 사용할 수 없습니다. CS 스크립트를 설치하고 스크립트 페이지를 만들었지만 코드에 대해 아무것도 모르므로 실제로 도움을 받을 수 있습니다. 다음은 내가 가지고 있는 파일에 있는 줄의 예입니다.

1.  699;2022-06-30 18:44:03.187;1.1.8;2409;Line_1_IP_Router:0/1/0;w;15.9371195;15.9371194999999997;0.000
2.  699;2022-06-30 18:45:03.179;1.1.8;2409;Line_1_IP_Router:0/1/0;w;16.183062;0.245942499999999953;59.992
3.  699;2022-06-30 18:46:03.173;1.1.8;2409;Line_1_IP_Router:0/1/0;w;16.315498;0.132436000000001997;59.994
4.  699;2022-06-30 18:47:03.169;1.1.8;2409;Line_1_IP_Router:0/1/0;w;16.40275;0.0872519999999994411;59.996
5.  699;2022-06-30 18:48:03.163;1.1.8;2409;Line_1_IP_Router:0/1/0;w;16.469275;0.066524999999998613;59.994
6.  699;2022-06-30 18:49:03.154;1.1.8;2409;Line_1_IP_Router:0/1/0;w;16.428036;-0.0412390000000009138;59.991
7.  699;2022-06-30 18:50:03.152;1.1.8;2409;Line_1_IP_Router:0/1/0;w;16.565973;0.137937000000000864;59.998

Excel의 열은 ;. 두 번째 줄에서 시작하여 모든 줄을 파일 끝까지 반복하고 싶습니다.

각 줄에서 두 번째 마지막 열(즉, 마지막 열 앞)의 숫자가 ;음수인지 확인해야 합니다. 그렇지 않은 경우에는 다음 줄로 이동합니다. 음수인 경우 마지막 세 열의 숫자가 변경되어야 합니다 0.

따라서 위의 예를 기반으로 하면 6행이 아래에 표시된 것과 같이 변경됩니다. 다른 모든 라인은 동일하게 유지됩니다.

6.  699;2022-06-30 18:49:03.154;1.1.8;2409;Line_1_IP_Router:0/1/0;w;0;0;0

이 모든 것이 의미가 있기를 바라며 누구의 도움에도 진심으로 감사하겠습니다. CS 스크립트에 익숙한 사람에게는 매우 기본적인 코드라고 확신합니다. 미리 감사드립니다.

답변1

CS 스크립트는 모르지만 정규 표현식과 함께 표준 검색/바꾸기 작업(CTRL+H)을 사용하여 수행할 수 있습니다.

을 검색하여 ;[0-9.]*;-[0-9.]*;[0-9.]*$로 바꿉니다 ;0;0;0.

설명: [0-9.]*범위에서 임의의 수(0이라도)의 문자를 검색합니다 0. - 9또는 는 .$의 끝과 일치합니다. 패턴은 다음으로 끝나는 줄과도 일치합니다.

;;-;
;1.2.3;-4..5;6....7

스크린샷

실제 요구 사항이 이전 줄의 값을 기반으로 한 줄의 데이터를 바꾸는 것이라면 이는 더 어려울 것입니다.

관련 정보