Removendo linhas vazias no Notepad ++

384

Como posso substituir linhas vazias no Notepad ++? Eu tentei encontrar e substituir pelas linhas vazias na localização, e nada na substituição, mas não funcionou; provavelmente precisa de regex.

nomoreflash
fonte

Respostas:

395

Você precisa de algo como uma expressão regular.

Você tem que estar no Extendedmodo

Se você deseja que todas as linhas terminem em uma única linha, use \r\n. Se você deseja simplesmente remover linhas vazias , use \n\rcomo o @Link originalmente sugerido.

Substitua qualquer expressão por nada.

Brad
fonte
21
Primeiro, selecione 'estendido' no modo de pesquisa.
Q0987 17/04
14
Para que suas linhas não sejam unidas, é necessário procurar \r\n\r\ne substituir por \r\n.
Robert Kaucher 13/07/12
11
Veja o comentário do @ BoltClock abaixo. Além disso, se o seu arquivo for salvo com finais de linha Unix, você poderá convertê-lo em finais de linha do Windows em Editar> Conversão de EOL> Formato do Windows antes de encontrar e substituir.
Big McLargeHuge
9
Se você deseja remover linhas com apenas espaços e tabulações ou tente nada usando regex substituir para corresponder \r\n\W*\r\ne substituir com\r\n
Myster
2
@ ST3 hmm, o que eu estava pensando? Este é muito melhor: (\r\n|\r|\n)(\s*(\r\n|\r|\n))+e substitua por \r\nveja em ação aqui: regex101.com/r/qD9dB1/1
Myster
567

Agora existe uma maneira interna de fazer isso a partir da versão 6.5.2

Edit -> Line Operations -> Remove Empty Lines ou Remove Empty Lines (Containing Blank characters)

Captura de tela da remoção de linhas vazias

Halfwarr
fonte
Infelizmente, isso não considera sua seleção, mas todas as linhas vazias do arquivo serão excluídas, mesmo que você tenha selecionado apenas algumas delas.
Fabio diz Reinstate Monica
Se for uma operação única, é possível extrair as linhas selecionadas para a nova guia notepad ++ e executar essa operação lá. Procedimento de copiar e colar por 5 segundos. Qualquer outra solução alternativa que não possa ser realizada nesse período é um desperdício na minha opinião. Mas se você está fazendo isso todos os dias 100 vezes ...
credo
Eu estava usando isso (até mesmo meu atalho atribuído), mas é muito mais lento que a opção acima, então use com inteligência ...
Betlista
122

Existe um plugin que adiciona um menu intitulado TextFX. Esse menu, que abriga uma variedade estonteante de opções rápidas de edição de texto, permite que uma pessoa faça alterações rápidas na codificação. Nesse menu, você pode encontrar seleções como Soltar aspas, Excluir linhas em branco, além de Desembrulhar e refazer texto

Faça o seguinte:

TextFX > TextFX Edit > Delete Blank Lines
TextFX > TextFX Edit > Delete Surplus Blank Lines
Kolufild
fonte
7
Não tenho certeza de quando, mas parece que este plug-in está instalado por padrão agora. Ligeiramente fora de tópico, mas um dos outros recursos incrivelmente úteis, abaixo TextFX > TextFX Tools, é a classificação de linhas, opcionalmente removendo duplicatas. sort -uManeira muito prática de se fazer um Unix em uma caixa do Windows sem cygwin, unxutils ou similar.
Cam Jackson
3
Aqui está um link para o plug-in TextFx. Eu achei muito útil. Use: Settings > Import > plugin...e encontre o arquivo dll para instalá-lo. Torna-se um item de menuPlugins
Nicholas Pickering
11
isso funcionará em todos os documentos abertos ou em um documento por vez?
abandonado
76
  1. bloco de notas ++
  2. Ctrl-H
  3. Selecionar expressão regular
  4. Entre ^[ \t]*$\r?\nem encontrar o que, deixe substituir vazio. Isso corresponderá a todas as linhas começando com espaço em branco e terminando com retorno de carro (neste caso, um windows crlf)
  5. Clique no botão Localizar próximo para ver por si mesmo como ele corresponde apenas às linhas vazias.
SleepyBoBos
fonte
11
Eu tive que usar esse método em vez de alguns dos outros métodos para fazê-lo funcionar facilmente em uma macro. Obrigado.
Mafu Josh
5
substituições ainda mais curtas e menores, necessárias por causa de várias linhas vazias, serão substituídas de uma só vez: ^ \ s * $ \ r? \ n
njank
31
  1. Pressione ctrl + h (atalho para substituir).
  2. Na zona Localizar , digite ^\R(para linhas vazias exatas) ou ^\h*\R(somente para linhas vazias com espaços em branco).
  3. Deixar a substituir com zona vazia .
  4. Marque a opção Wrap around .
  5. Selecione o modo de pesquisa de expressão regular .
  6. Clique no botão Substituir tudo .

insira a descrição da imagem aqui

Alex.K.
fonte
11
Isso funcionou para mim sem problemas ou configurações adicionais a serem alteradas. Obrigado!
Bonez024
19

Você pode seguir a técnica conforme mostrado na seguinte captura de tela:

  • Encontre o que: ^\r\n
  • Substituir com: keep this empty
  • Modo de Pesquisa: Regular expression
  • Quebra automática: selecionada

insira a descrição da imagem aqui

NOTA: para arquivos * nix, basta encontrar por\n

Saikat
fonte
17

Isso funcionou para mim:

  1. Pressione ctrl + h(Atalho para substituir)
  2. Escreva uma das seguintes expressões regulares na find whatcaixa. [\n\r]+$ou^[\n\r]+
  3. Deixar Replace withcaixa em branco
  4. Em Search Mode, selecioneRegex
  5. Clique em Replace All

    Concluído!
Kamal Nayan
fonte
Esta é a única solução que não estragou meus enormes arquivos .csv. Obrigado!
veuncent 30/08/17
11
mais um, porque finalmente conheço o atalho para substituir :-D
Betlista
14

No bloco de notas ++, pressione CTRL + H, no modo de pesquisa, clique no botão de opção "Estendido (\ n, \ r, \ t ...)" e digite na caixa "Localizar": \ r \ n (abreviação de CR LF ) e deixe a caixa "Substituir por" vazia.

Finalmente pressione substituir tudo

Bassem
fonte
na verdade, eu tentei, veja meu esclarecimento na minha resposta. Você estava em algo!
Brad
3
Isso pressupõe que as terminações de linha sejam Windows (CRLF), se o seu arquivo for salvo com a busca de finalizações de linha Unix \n.
BoltClock
@ Brad: eu escrevi entre o () "abreviação de CR LF", não queria que o codetrek pensasse que \ n é CR, daí a edição.
Bassem
Resposta errada, coloca todas as linhas em uma linha.
m0skit0
12

Bem, eu não tenho certeza sobre o regex ou sua situação ..

Como sobre CTRL + A, selecione o menu TextFX -> Edição TextFX -> Excluir linhas em branco e viola todas as linhas em branco desapareceram.

Uma observação lateral - se a linha estiver em branco, ou seja, não contiver espaços, isso funcionará

Ahmad
fonte
12

Você pode procurar o seguinte regex: ^(?:[\t ]*(?:\r?\n|\r))+e substituí-lo pelo campo vazio

Ya Basha
fonte
11

Ctrl + H.

encontrar - \ r \ r substitua por - \ r.

mahesh adepu
fonte
Isso funciona para mim, removendo a linha extra, no sentido de encontrar duplo substituir por único. Obrigado!!
genpet
Isso funcionou bem, no entanto, descobri que precisava executá-lo várias vezes no meu documento antes que todas as instâncias de \ r \ r tivessem desaparecido. Não sei por que.
precisa saber é o seguinte
7

Obviamente, isso não funciona se as linhas em branco contiverem guias ou espaços em branco. Muitas páginas da web (por exemplo, http://www.guardian.co.uk/ ) contêm essas linhas brancas, como resultado de um editor de HTML com defeito.

Remova o espaço em branco usando a expressão regular da seguinte maneira:

alterar padrão: [\ t] + $ em nada.

onde [\ t] corresponde a tabulação ou espaço. '+' corresponde a uma ou mais ocorrências e '$' marca o final da linha.

Em seguida, use o bloco de notas ++ / textFX para remover linhas vazias simples ou extras. Certifique-se de que essas linhas em branco não sejam significativas no contexto fornecido.

Poisson
fonte
5

insira a descrição da imagem aqui

Às vezes, \ n \ r etc não funcionam, aqui para descobrir qual deve ser sua expressão realmente regular.

Vantagem desse truque: Se você deseja substituir vários arquivos de uma vez, precisa deste método. Acima não vai funcionar ...

Wasim A.
fonte
5

1) Ctrl + H(Ou Search 🠆 Replace..) para abrir a janela Substituir.

2) Selecione 'Search Mode' 'Expressão regular'

3) Em 'Localizar' Tipo ^(\s*)(.*)(\s*)$e em 'Substituir por' Tipo\2

  • ^ - Corresponde ao início do caractere de linha
  • (\s*) - Corresponde a caracteres de espaço vazio
  • (.*) - Corresponde a qualquer caractere
  • (\s*) - Corresponde a caracteres de espaços vazios
  • $ - Corresponde ao caractere de fim de linha
  • \2 - Indica o conteúdo correspondente do segundo colchete

insira a descrição da imagem aqui Consulte https://www.rexegg.com/regex-quickstart.html para obter mais informações sobre regex.

Praboda
fonte
4
  1. Editar >> Operações em branco >> Aparar espaços à esquerda e à direita (para remover guias e espaços pretos em linhas vazias)
  2. Ctrl+ Hpara substituir a janela e substituir o padrão: ^\r\ncom nada (selecione expressão regular)

Nota: a etapa 1 removerá sua intenção de código feita por guias e espaços em branco

Adeeb
fonte
4

CTRL + A, selecione o menu TextFX -> Edição de TextFX -> Excluir linhas em branco, conforme sugerido acima.

Mas se as linhas contiverem algum espaço, mova o cursor para essa linha e pressione CTRL + H. O segundo "Localizar o que:" mostra o espaço em branco e, na seção "Substituir por", deixe em branco. Agora todos os espaços foram removidos e agora tente CTRL + A, selecione o menu TextFX -> Edição TextFX -> Excluir linhas em branco


fonte
4

/n/rassume um tipo específico de quebra de linha. Para direcionar qualquer linha em branco, você também pode usar:

^$

Isso diz - qualquer linha que comece e depois termine com nada no meio. Isso é mais do que tudo. Substitua pela mesma string vazia.

AshBrad
fonte
3

Não vi o combinado como resposta. Pesquise ^ \ s + $ e substitua por {nothing}

^\s+$ means
  ^ start of line
  \s+ Matches minimum one whitespace character (spaces, tabs, line breaks)
  $ until end of line
user2056154
fonte
se você quiser várias linhas, tente: ^\s+^(\S)e substitua por \1.
Jggunjer #
2

É muito simples

ctrl + H

Localizar: \ r \ n \ r \ n

Substitua por: \ r \ n

Ver Snap

Pragnesh Bhalodiya
fonte
1

Uma alternativa fácil para remover espaços em branco de linhas vazias:

  1. TextFX> TextFX Edit> Cortar espaços à direita

Isso removerá todos os espaços finais, incluindo espaços finais em linhas em branco. Verifique se não há espaços à direita significativos.

Poisson
fonte
0

Algumas das expressões acima e expressões estendidas não funcionaram para mim, mas a expressão regular "$ \ n $" funcionou.

Chris
fonte
0

este trabalho para mim:

SEARCH:^\r  
REPLACE:            (empty)
Rafael Marques
fonte
11
Isso não vai funcionar para linux eol \ne janelas EOL\r\n
Toto