Como remover todas as linhas ímpares no Notepad ++?

29

Estou tentando editar um documento de 20000 linhas. Eu tenho que remover todas as linhas ímpares, digamos, por exemplo:

Apple
Monkey
Orange
Lion
fruit
animal

Como posso remover os caracteres de todas as linhas ímpares no documento?

Nithin N
fonte
o que você quer dizer com linha ímpar? Você quer remover a palavra ímpar (indesejada) de todo o documento?
Antzshrek
4
Todas as linhas numeradas ímpares como 1,3,5,7,9,11,13,15 .... assim por diante.
Nithin N 01/09
11
Tente substituir pela nova linha (regexp): [\ n. + \ N]
Art Gertner
@ArtGertner eu tentei com a expressão não está funcionando.
Nithin N 01/09/19
11
Eu gravaria uma macro estúpida: seta para baixo, seta para baixo, del.
chingNotCHing

Respostas:

23

Você pode fazer isso com localizar e substituir:

  • Abra a caixa de diálogo substituir ( Ctrl+ H)
  • Selecione "Expressão regular"
  • Encontre o que: .+\r\n(.+(\r\n|$))
  • Substituir com:
    $1
  • Pressione "Substituir tudo"

Notas:

  • Dependendo do seu sistema operacional, você precisa usar \r(Mac antigo), \n(Unix, OS X) ou \r\n(Windows) para corresponder ao final da linha ou apenas usar o \Rque deve funcionar em qualquer lugar (obrigado por @Aurel Bílý)
  • \n|$ é necessário para ter o resultado correto, mesmo no final do arquivo
  • Por padrão, o Notepad ++ substitui da posição real do cursor até o final do arquivo. Coloque o cursor no início do arquivo.
    • (Você também pode marcar "wrap around", mas nesse caso ele excluirá primeiro a linha em que está o cursor, em vez de realmente procurar uma linha ímpar.)

Digite a descrição da imagem aqui

Máté Juhász
fonte
É quase funciona, mas não é a edição do primeiro conjunto de linhas ímpares, digamos, de 1 a 15.
Nithin N
Altere a captura de tela com mais transparência dessa janela de substituição.
Biswapriyo
11
Observe que, \rcomo o final de uma linha é muito raro - foi realmente usado no Mac OS, mas nas versões clássicas pré-OS-X. No OS X e seguintes, os finais de linha são \n, como qualquer Unix sã. Também \Ré melhor para combinar com qualquer final de linha.
Aurel Bílý
@ AurelBílý Isso é verdade, no entanto, o Notepad ++ é executado apenas no Windows, então a portabilidade aqui não é um problema.
Rob
18
  • Ctrl+H
  • Encontre o que: .+\R(.+)
  • Substituir com: $1
  • Replace all

Explicação:

.+      : 1 or more any character but newline
\R      : any kind of linebreak (ie. \r, \n, \r\n)
(       : start group 1
  .+    : 1 or more any character but newline
)       : end group 1
  • Verificar expressão regular
  • NÃO VERIFIQUE . matches newline

Resultado para um exemplo:

Monkey
Lion
animal
Toto
fonte
@NithinN: Esteja ciente de que resposta aceita não funciona com arquivos Linux (ou seja LINEBREAK. \n)
Toto
7
  1. Abra o arquivo e coloque o cursor de texto no início da primeira linha.
  2. Menu → MacroIniciar Gravação
  3. Pressione a Endtecla no teclado
  4. Shift+ Home, entãobackspace
  5. Down
  6. Backspace
  7. Down
  8. Menu → MacroParar gravação
  9. Menu → MacroExecutar uma macro várias vezes → Marque Executar até o final do arquivo
  10. Clique Run

Basicamente, execute a ação uma vez para remover uma linha ímpar e peça ao programa que repita a ação até o final do arquivo. Isso pode ser usado para resolver muitos problemas!

UserF40
fonte
1

Acabei de verificar o PC do meu colega que realmente usa o Notepad ++. Tente o seguinte:

Digite a descrição da imagem aqui

Art Gertner
fonte
Parece-me que isso remove linhas pares (2,4,6 ...), não linhas ímpares.
Máté Juhász
11
Está correto. No entanto remover linhas pares é mais fácil, e que o problema pode ser resolvido através da adição de uma linha em branco no início do arquivo
Art Gertner
O @ArtGertner deve ser \ r \ n. + \ R \ n substituído por \ r \ n
chingNotCHing
@chingNotCHing, good one! Eu atualizei a minha resposta
Art Gertner
@ArtGertner Como você apontou, funciona apenas para linhas pares. Mas para um grande conjunto de dados, ele não está sendo editado para o primeiro conjunto de dados, da 1-15a linha.
Nithin N 01/09/19