Notepad ++ Mescla 10 + linhas em uma linha

1

Estou tentando usar o Notepad ++ para mesclar várias linhas em uma. O problema que estou enfrentando é ao tentar esse código, eu recebo este resultado:

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

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

Substitua por: \t\t\t\t\t\t\t\t\t\t\t\t\t

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

Alguém pode ajudar com um caminho mais fácil ou mais curto? Não consigo destacar o texto e selecione Join Lines. O documento tem milhares desses resultados e estou tentando simplificar. É sempre um conjunto de 13.

    
por pau13z 07.02.2017 / 03:44

3 respostas

3

Opção 1: altere sua substituição para usar números fixos:

Editar : sequência de substituição corrigida

\ t {g} {t} {t} {t} {t} {t} {t} {t} {t} {t} {t} {t} {t} {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}

Opção 2: sua sequência de correspondência para incluir grupos nomeados:

(?<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>.+)

E, altere a string de substituição para usar esses grupos:

Editar : sequência de substituição corrigida

\ 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}

A sua escolha, embora a opção 1 seja menos trabalhosa, a opção 2 também pode ser útil.

Nova nota : os nomes na opção 2, <a> e {a} não estão limitados a um caractere. Eles podem ser qualquer sequência de tipo 'nome' que você desejar, contanto que esteja no intervalo normal de letras, números e sublinhados. Não tenho certeza se outros caracteres especiais, incluindo espaços, são válidos. Evitá-los é mais sábio, apenas no caso.

    
por 07.02.2017 / 04:31
2

Método 1

Pesquisa → Substituir ...

  • Encontre o que: \ r \ n
  • Substituir por: \ t
  • Envolver: verificado
  • Modo de pesquisa: expressão regular

Método 2

Editar → Operações em branco → EOL para o espaço

    
por 09.02.2017 / 07:44
0

Se todas as 13 linhas começarem com Date/Time: , você poderá fazer isso. Ele substituirá todas as quebras de linha que não forem seguidas por Date/Time por uma tabulação:

  • Ctrl + H
  • Encontre o que: \R(?!Date/Time:)
  • Substituir por: \t
  • Desmarque o caso de correspondência
  • check Embrulhe
  • verificar expressão regular
  • Substituir todos

Explicação:

\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 linhas:

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:
    
por 07.08.2018 / 10:09