Búsqueda multicriterio con Notepad

Resuelto
Jack80 -  
 Jack80 -
Hola,
tengo un archivo de varias centenas de líneas de este estilo
OFICINA, SILLA, AZUL, 1234, RZC
COCHE, 6CV, VERDE, 5478, GHF
OFICINA, MESA, AZUL, 8742, JUD
COCHE, 7CV, VERDE, 2457, FDS
COCHE, 7CV, AZUL, 3651, FDS
OFICINA, LÁMPARA, NEGRO, 5475, HIJ
COCHE, 7CV, AZUL, 1265, IOG
OFICINA, ARMARIO, NEGRO, 9875, HDS
COCHE, 7CV, VERDE, 8574, FDR
COCHE, 7CV, NEGRO, 3655, FDY
COCHE, 7CV, AZUL, 3651, FDS
COCHE, 6CV, AZUL, 1234, GHP

y con Notepad, me gustaría buscar y reemplazar los "COCHE" que no son "AZUL" por "AUTO" "GRIS" manteniendo el conjunto de las líneas.
¿Es posible?
Gracias por tu respuesta

Configuración: Windows / Chrome 83.0.4103.116

3 respuestas

jee pee Mensajes publicados 31852 Fecha de registro   Estado Moderador Última intervención   9 965
 
Hola,

Como se escribió más arriba, hacer una versión actualizada del archivo con una hoja de cálculo (excel, ...) sería fácil.

Pero si notepad no se refiere a la block de notas de Windows, sino al editor notepad++, con expresiones regulares podemos hacer el trabajo.

No en un solo comando, ya que SI EXCEPTO permite apuntar a una línea, solo se puede reemplazar completamente, no recuperar elementos (*).

Así, con el reemplazar de notepad++ (casilla de expresión regular marcada)
^(COCHE,)((?!AZUL).)*$
identifica las líneas de coche EXCEPTO azul y permite reemplazar la línea por
AUTO,GRIS
pero no recuperar la información original.

Podemos proceder por etapas:
- COCHE AZUL se convierte en #OCHE AZUL
reemplazar
^(COCHE,)(.*?,)(AZUL,)(.*?,)(.*)
por
#OCHE,\2\3\4\5
.
- COCHE XXX se convierte en AUTO GRIS
reemplazar
^(COCHE,)(.*?,)(.*?,)(.*?,)(.*)
por
AUTO,\2GRIS,\4\5
.
- #OCHE AZUL se convierte de nuevo en COCHE AZUL
reemplazar
^#OCHE
por
COCHE
.

Saludos
(*) si alguien tiene una solución ....
1
Jack80
 
Gracias Jee Pee, funciona perfectamente.
0
Usuario anónimo
 
Hola
Lamentablemente, el Bloc de notas "notepad.exe" no es más que un editor de textos que, aunque tiene una función de Buscar/Reemplazar, es rudimentario.
Su solicitud de búsqueda "condicional" se encuentra más en el ámbito de una hoja de cálculo, siempre que se domine un poco. Las comas podrían interpretarse fácilmente como separadores de columnas.
¡Hasta luego!
--
Si la respuesta le ha ayudado o le ha servido: un pequeño agradecimiento, si se ha resuelto: haga clic en el botón verde de arriba ;-)

Que aquel que nunca haya abierto un manual de usuario me lance el primer ratón.
1
ARTUROK
 
Hola,
o un script como
https://supersonique-studio.com/2009/07/rechercher-et-remplacer-en-ligne-de-commande-bash-shell-sed/
donde cualquier lenguaje de programación puede hacer esto (ver expresiones regulares).
Si no, no tiene mucho que ver con un editor de texto o incluso con la webmastería...
0
georges97 Mensajes publicados 14535 Fecha de registro   Estado Colaborador Última intervención   2 907
 
Hola a todos,

@jeepee, tu solución utiliza los comandos combinados que permiten realizar cualquier orden y filtrado, pero "obliga" a dominar la sintaxis.

Dado que nos lo propones, sugiero recuperar el archivo de texto en el software Base de la suite LibreOffice.

Utilizando las funciones de esta base de datos, creo que podemos obtener el mismo resultado llenando una simple consulta, e incluso encadenarlas gracias al lenguaje de programación Basic.

¿Qué opinas?

Saludos cordiales
0
jee pee Mensajes publicados 31852 Fecha de registro   Estado Moderador Última intervención   9 965
 
Sí, como he escrito, una hoja de cálculo o una base de datos podrían ser suficientes. Y aquí también es necesario conocer el software, su sintaxis, sus comandos.
0