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

  1. jee pee Mensajes publicados 31946 Fecha de registro   Estado Moderador Última intervención   10 003
     
    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
    1. Jack80
       
      Gracias Jee Pee, funciona perfectamente.
      0
  2. 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
    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
  3. georges97 Mensajes publicados 14634 Fecha de registro   Estado Colaborador Última intervención   2 948
     
    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
    1. jee pee Mensajes publicados 31946 Fecha de registro   Estado Moderador Última intervención   10 003
       
      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