Notepad ++ Combina 10+ líneas en 1 línea


1

Estoy tratando de usar Notepad ++ para fusionar varias líneas en una. El problema al que me enfrento es cuando intento este código, obtengo este resultado:

Date/Time:
Sequence:
Event:
Category:
Priority:
Attention:
Alert:
Visibility:
Description:
Codes:
Type:
Location:
Logged by:

Encontrar: (.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)\r\n(.+)

Reemplazar con: \1\t\2\t\3\t\4\t\5\t\6\t\7\t\8\t\9\t\10\t\11\t\12\t\13\t

Resultado: Date/Time: Sequence: Event: Category: Priority: Attention: Alert: Visibility: Description: Date/Time:0 Date/Time:1 Date/Time:2 Date/Time:3

¿Alguien puede ayudar de una manera más fácil o más corta? No puedo resaltar el texto y seleccionar unir líneas. El documento tiene miles de estos resultados y estoy tratando de simplificar. Siempre es un conjunto de 13.


¿Has probado TextFXPlugin en Notepad ++, proporciona una opción de menú TextFX>TextFX Edit>Unwrap Textque hace lo que necesitas? También podría haber reemplazado \r\ncon \ten modo de búsqueda extendida
AEonAX

Respuestas:


3

Opción 1: cambie su reemplazo para usar números entre llaves:

Editar : cadena de reemplazo corregida

\ g {1} \ t \ g {2} \ t \ g {3} \ t \ g {4} \ t \ g {5} \ t \ g {6} \ t \ g {7} \ t \ g {8} \ t \ g {9} \ t \ g {10} \ t \ g {11} \ t \ g {12} \ t \ g {13} \ t

${1}\t${2}\t${3}\t${4}\t${5}\t${6}\t${7}\t${8}\t${9}\t${10}\t${11}\t${12}\t${13}

Opción 2: su cadena de coincidencia para incluir grupos con nombre:

(?<a>.+)\r\n(?<b>.+)\r\n(?<c>.+)\r\n(?<d>.+)\r\n(?<e>.+)\r\n(?<f>.+)\r\n(?<g>.+)\r\n(?<h>.+)\r\n(?<i>.+)\r\n(?<j>.+)\r\n(?<k>.+)\r\n(?<l>.+)\r\n(?<m>.+)

Y, cambie la cadena de reemplazo para usar esos grupos:

Editar : cadena de reemplazo corregida

\ g {a} \ t \ g {b} \ t \ g {c} \ t \ g {d} \ t \ g {e} \ t \ g {f} \ t \ g {g} \ t \ g {h} \ t \ g {i} \ t \ g {j} \ t \ g {k} \ t \ g {l} \ t \ g {m}

$+{a}\t$+{b}\t$+{c}\t$+{d}\t$+{e}\t$+{f}\t$+{g}\t$+{h}\t$+{i}\t$+{j}\t$+{k}\t$+{l}\t$+{m}

Su elección, aunque la opción 1 es menos trabajo, la opción 2 también puede ser útil.

Nueva Nota : Los nombres en la opción 2, <a>y {a}no están limitados a un carácter. Pueden ser cualquier cadena de tipo 'nombre' que desee, siempre que esté en el rango normal de letras, números y guiones bajos. No estoy seguro si otros caracteres especiales, incluidos los espacios, son válidos. Es mejor evitarlos, por si acaso.


Hola Gypsy, usando la opción 1 obtuve: g {1} g {2} g {3} g {4} g {5} g {6} g {7} g {8} g {9} g {10} g {11} g {12} g {13} Y usando la opción 2, obtuve: g {a} g {b} g {c} g {d} g {e} g {f} g {g} g {h } g {i} g {j} g {k} g {l} g {m}
pau13z

Deseche eso, usando la opción 1 no pasó nada Y usando la opción 2, obtuve: g {a} g {b} g {c} g {d} g {e} g {f} g {g} g {h} g { i} g {j} g {k} g {l} g {m}
pau13z

Culpa mía. Las versiones \g{12}y \g{name}son para referencias posteriores en la búsqueda misma. Aquí están las versiones corregidas: 1) En lugar de \g{12}uso ${12}. Entonces es ${1}\t${2}\t${3}\t${4}\t${5}\t${6}\t${7}\t${8}\t${9}\t${10}\t${11}\t${12}\t${13}. 2) En lugar de \g{a}usar $+{a}, así es $+{a}\t$+{b}\t$+{c}\t$+{d}\t$+{e}\t$+{f}\t$+{g}\t$+{h}\t$+{i}\t$+{j}\t$+{k}\t$+{l}\t$+{m}. Tenga en cuenta que en ambas versiones no hay ` before the $ . For version 2 the search string stays the same. BTW the (? <a> ... `no está limitado a 1 carácter. Puede ser (?<my_flag_15>..., por ejemplo.
Gypsy Spellweaver

@ pau13z. Respuesta actualizada con las cadenas de reemplazo corregidas. Lo siento por eso.
Gypsy Spellweaver

¡Leyenda! La opción 1 funcionó para mí :) Cheers mate
pau13z

2

Método 1

Buscar → Reemplazar ...

  • Encuentra qué: \ r \ n
  • Reemplazar con: \ t
  • Envolver: marcado
  • Modo de búsqueda: expresión regular

Método 2

Editar → Operaciones en blanco → EOL al espacio


0

Si todo el conjunto de 13 líneas comienza Date/Time:, puede hacer esto. Reemplazará todos los saltos de línea que no sean seguidos por Date/Timeuna tabulación:

  • Ctrl+H
  • Encontrar que: \R(?!Date/Time:)
  • Reemplazar con: \t
  • Desmarque el caso Match
  • comprobar envolver
  • comprobar expresión regular
  • Replace all

Explicación:

\R              : any kind of linebreak
(?!             : start negative lookahead, make sure we don't have after
  Date/Time:    : literally
)               : end lookahead

Resultado para 3 conjuntos de líneas:

Date/Time:  Sequence:   Event:  Category:   Priority:   Attention:  Alert:  Visibility: Description:    Codes:  Type:   Location:   Logged by:
Date/Time:  Sequence:   Event:  Category:   Priority:   Attention:  Alert:  Visibility: Description:    Codes:  Type:   Location:   Logged by:
Date/Time:  Sequence:   Event:  Category:   Priority:   Attention:  Alert:  Visibility: Description:    Codes:  Type:   Location:   Logged by:
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.