Una linhas divididas com caractere específico no final da linha

0

Eu tenho que juntar duas linhas. Um deles tem um ponto final para o anterior no exemplo do texto inteiro:

line1:hello
line2:goodbye.

Eu preciso mudar para:

line1: hello goodbye.

Eu tenho que remover toda terceira linha (múltiplos de 3, como 3,6,9,12,15,18,21, ... linhas) deste texto enorme.

Isto é o que eu quero fazer.

Primeira tarefa:

  • verifique todas as linhas

  • se terminar com um período . , vá para a próxima linha,

  • se não terminar com o período . junte a linha seguinte à linha atual.

Cada linha não tem uma lista de números de linha, eles começam com palavras normais.

Segunda tarefa

  • desde o início, toda terceira linha é um lixo e deve ser removida

  • a primeira tarefa também deve ser feita porque em algumas partes a 3ª frase é dividida em 2 linhas, então primeiro eu tenho que juntar a linha completamente que é dividida em 2 linhas então eu executo a segunda tarefa.

Eu uso o windows 7. Eu posso usar o notepad ++ e o ultraedit

    
por solidworker 11.03.2015 / 10:23

1 resposta

0

Primeira tarefa Eu faria no Notepad ++, usando a pesquisa de expressão regular & substituir:

  • Abra "Pesquisar" > "Substituir ..."
  • Como "Localizar:", insira "([^\.])\r\n" (sem as aspas)
    • Significado do Regex: encontre uma linha que termine com algo diferente de "."
    • Nota: Se o documento tiver finais de arquivo do Linux, você deverá usar apenas "\ n" em vez de "\ r \ n".
  • Como "Substituir por:", digite " " (sem as aspas; também copie o espaço depois de "\ 1")
  • Como "Modo de pesquisa", selecione "Expressão regular"
  • Clique em "Substituir tudo"

Entrada:

hello
goodbye.
hello
hello
goodbye.
hello.
goodbye.

Saída:

hello goodbye.
hello hello goodbye.
hello.
goodbye.

A segunda tarefa pode ser feita com um regex ainda maior:

  • Abra "Pesquisar" > "Substituir ..."
  • Como "Localizar:", insira "(([^\r\n]*\r\n){2})[^\r\n]*\r\n" (sem as aspas)
    • Significado do Regex: Encontre um bloco de três linhas.
    • Nota: Novamente, se o documento tiver terminações de arquivo do Linux, você deve usar apenas "\ n" em vez de "\ r \ n".
  • Como "Substituir por:", digite "" (sem as aspas)
  • Como "Modo de pesquisa", selecione "Expressão regular"
  • Clique em "Substituir tudo"

Entrada:

hello goodbye.
hello hello goodbye.
sdlfj sdgf.
hello.
goodbye.
(/%&/$&=)?)=´?&%.
goodbye goodbye.
bye.
sldfjsdökl.
hello.

Saída:

hello goodbye.
hello hello goodbye.
hello.
goodbye.
goodbye goodbye.
bye.
hello.

Nota: Em ambos os exemplos, assumi que não há espaço em branco à direita. Se houver, você precisará remover a primeira, por exemplo, substituindo regex (como acima) "\s*$" por "" (sem as aspas).

    
por 11.03.2015 / 11:16