No he usado CS Script con Notepad++ antes, pero estoy trabajando en varios archivos grandes donde necesito crear un script. Normalmente trabajo en Excel y uso VBasic pero los archivos son demasiado grandes para Excel. Instalé CS Script y creé la página del script, pero no sé nada sobre el código, así que me vendría bien un poco de ayuda. A continuación se muestra un ejemplo de las líneas de los archivos que tengo.
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
Las columnas en Excel están separadas por ;
. Quiero comenzar en la segunda línea y recorrer cada línea hasta el final del archivo.
En cada línea debe verificar si el número en la penúltima columna (es decir, antes de la última ;
) es negativo. Si no es así, simplemente pasa a la siguiente línea. Si es negativo se deben cambiar los números de las últimas tres columnas 0
.
Entonces, según mi ejemplo anterior, cambiaría la línea 6 a lo que muestro a continuación. Todas las demás líneas seguirían igual.
6. 699;2022-06-30 18:49:03.154;1.1.8;2409;Line_1_IP_Router:0/1/0;w;0;0;0
Espero que todo esto tenga sentido y realmente agradecería la ayuda de cualquiera. Estoy seguro de que es un código bastante básico para alguien familiarizado con CS Script. Gracias de antemano.
Respuesta1
No conozco el script CS, pero esto se puede hacer usando la operación estándar de búsqueda/reemplazo (CTRL+H) con expresión regular.
buscar ;[0-9.]*;-[0-9.]*;[0-9.]*$
y reemplazar con ;0;0;0
.
Explicación: [0-9.]*
busca cualquier número (incluso 0) de caracteres del rango 0
, 9
o coincide .
con $
el final de la línea. El patrón también coincidiría con líneas que terminen con, por ejemplo,
;;-;
;1.2.3;-4..5;6....7
Si el requisito real es reemplazar datos en una línea según los valores de la línea anterior, será más difícil.