Encontrar CRLF no Notepad ++

Como posso encontrar / replace todos os caracteres CR / LF no Notepad ++?

Eu estou procurando algo equivalente ao ^ p caractere especial no Microsoft Word.

[\r\n]+ deve funcionar também

Atualização de 26 de março de 2012, data de lançamento do Notepad ++ 6.0 :

OMG, ele realmente funciona agora !!!

Regexp PCRE no Notepad ++


Resposta original 2008 (Notepad ++ 4.x) – 2009-2010-2011 (Notepad ++ 5.x)

Na verdade não, não parece funcionar com o regexp …

Mas se você tiver o Notepad ++ 5.x, você pode usar o modo de busca ‘ estendido ‘ e procurar por \r\n . Isso encontra todo o seu CRLF .

(Eu percebo que esta é a mesma resposta que os outros, mas, novamente, ‘modo estendido’ só está disponível com o Notepad ++ 4.9, 5.xe mais)


Desde abril de 2009, você tem um artigo wiki no site do Notepad ++ sobre este tópico:
Como replace as extremidades da linha, alterando assim o layout da linha “.
(mencionado por georgiecasey em sua resposta abaixo )

Alguns trechos relevantes incluem os seguintes processos de pesquisa:

Pesquisa simples ( Ctrl + F ), Modo de pesquisa = Normal

Você pode selecionar um EOL na janela de edição.

  • Basta mover o cursor até o final da linha e digitar Shift + Seta para a direita .
  • ou, para selecionar EOL com o mouse, comece apenas no final da linha e arraste para o início da próxima linha; Arrastar para a direita do EOL não funcionará. Você pode copiar manualmente o EOL e colá-lo no campo para arquivos Unix (somente LF ).

Pesquisa simples (Ctrl + F), modo de pesquisa = estendido

A opção “Estendido” mostra \n e \r como caracteres que podem ser correspondidos.
Assim como no modo de pesquisa Normal, o Notepad ++ está procurando pelo caractere exato.
Procurando por \r em um arquivo de formato UNIX não vai encontrar nada, mas procurando por \n vontade. Da mesma forma, um arquivo no formato Macintosh conterá \r mas não \n .

Pesquisa simples (Ctrl + F), modo de pesquisa = expressão regular

Expressões regulares usam os caracteres ^ e $ para ancorar a sequência de correspondência no início ou no final da linha. Por exemplo, procurando return;$ encontrará ocorrências de “retorno”; que ocorrem sem texto subseqüente na mesma linha. Os caracteres âncora funcionam de forma idêntica em todos os formatos de arquivo.
O ‘.’ metacaracteres ponto não coincide com os finais de linha.

[Testado no Notepad ++ 5.8.5]: uma pesquisa de expressão regular com um \r ou \n explícito não funciona (ao contrário da documentação do Scintilla ) .
Nem uma pesquisa em um LF explícito (colado) ou nos caracteres EOL (invisíveis) colocados no campo quando um EOL é selecionado. Pesquisa avançada ( Ctrl + R ) sem regexp

Ctrl + M irá inserir algo que corresponda a novas linhas. Eles serão substituídos pela string de substituição.
Eu recomendo este método como o mais confiável, a menos que você realmente precise usar o regex.
Por exemplo, para remover cada segunda nova linha em um arquivo de espaço duplo, insira Ctrl + M duas vezes na checkbox de string de pesquisa e uma vez na checkbox de substituição de string.

Pesquisa avançada ( Ctrl + R ) com Regexp.

Nem Ctrl + M , $ nem \r\n são correspondidos.


O mesmo wiki também menciona a alternativa do editor Hex :

  • Digite a nova string no início do documento.
  • Em seguida, selecione para visualizar o documento no modo hexadecimal .
  • Selecione uma das novas linhas e pressione Ctrl + H.
  • Enquanto você tiver a checkbox de diálogo Substituir, selecione no fundo a nova seqüência de substituição e Ctrl + C copie-a para colá-la na input Substituir por texto.
  • Em seguida, substitua ou substitua todos como desejar.

Nota: o personagem selecionado para nova linha geralmente aparece como 0a .
Pode ter um valor diferente se o arquivo estiver no formato do Windows. Nesse caso, você sempre pode ir para Edit -> EOL Conversion -> Convert to Unix Format , e após a troca de substituição de volta e Edit -> EOL Conversion -> Convert to Windows Format .

Parece que este é um FAQ , e a resolução oferecida é:

Pesquisa simples (Ctrl + H) sem regexp

Você pode ativar Exibir / Mostrar Fim de Linha ou visualizar / Mostrar Tudo e selecionar os caracteres de nova linha agora visíveis. Então, quando você iniciar o comando, alguns caracteres correspondentes ao caractere de nova linha serão colados no campo de pesquisa. As correspondências serão substituídas pela string de substituição, ao contrário do modo regex.

Nota 1: Se você selecioná-los com o mouse, inicie logo antes deles e arraste para o início da próxima linha. Arrastar para o final da linha não funcionará.

Nota 2: Você não pode copiá-los e colá-los no campo.

Pesquisa avançada (Ctrl + R) sem regexp

Ctrl + M irá inserir algo que corresponda a novas linhas. Eles serão substituídos pela string de substituição.

Na checkbox de diálogo Substituir, você deseja definir o modo de pesquisa como “Estendido”. Os modos de expressão normal ou regular não funcionam.

Em seguida, basta encontrar “\ r \ n” (ou apenas \ n para arquivos unix ou apenas para arquivos no formato mac), e defina a substituição para o que você quiser.

Eu não tive muita sorte com \ r \ n expressões regulares da janela de localização / substituição.

No entanto, isso funciona no Notepad ++ v4.1.2:

  1. Use o menu “Exibir | Mostrar fim de linha” para ativar a exibição de caracteres de fim de linha. (Os feeds da linha de retorno de transporte devem aparecer como um ‘caractere’ CRLF sombreado simples.)

  2. Selecione um dos ‘caracteres’ CRLF (coloque o cursor na frente de um, mantenha pressionada a tecla SHIFT e, em seguida, pressione a tecla CURSOR DIREITA uma vez).

  3. Copie o caractere CRLF para a área de transferência.

  4. Certifique-se de que você não tenha a checkbox de diálogo Localizar ou Localizar / Substituir aberta.

  5. Abra o diálogo localizar / replace. O campo ‘Localizar o que’ mostra o conteúdo da área de transferência: neste caso, o caractere CRLF – que aparece como 2 ‘caracteres de checkbox’ (presumivelmente é um caractere não imprimível?)

  6. Certifique-se de que a opção ‘Expressão regular’ esteja desativada.

Agora você deve poder contar, encontrar ou replace conforme desejado.

A maneira que eu encontrei para trabalhar é usando a function Replace, e usando “\ n”, com o modo “Extended”. Estou usando a versão 5.8.5.

Imagem com CRLF

insira a descrição da imagem aqui


Imagem sem CRLF

insira a descrição da imagem aqui

Em 2013, v6.13 ou posterior, use:

Menu EditarConversão EOLFormato Windows .

Supondo que ele tenha uma pesquisa de “expressões regulares”, procure \ r \ n. Eu prefiro \ r? \ N, porque alguns arquivos não usam retornos de carro.

EDIT: Obrigado pelo feedback, quem votou para baixo. Eu aprendi que … bem, nada, porque você não deu feedback. Por que isso está errado?

Use a opção de pesquisa avançada ( Ctrl + R ) e use o atalho de teclado para CRLF ( Ctrl + M ) para inserir um retorno de carro.

Se você precisar fazer uma substituição complexa de expressões regulares, incluindo \ r \ n, poderá solucionar a limitação por meio de uma abordagem em três etapas:

  1. Substitua all \r\n por uma tag, digamos #GO# → Marque ‘Extended’, substitua \r\n por #GO#
  2. Execute o seu regexp, por exemplo, removendo multilinha ICON="*" de um marcador de html → Check regexp, replace ICON=.[^"]+.> by >
  3. Coloque de volta \ r \ n → Marque ‘Estendido’, substitua #GO# por \r\n

Eu abri o arquivo no Notepad ++ e fiz uma substituição em alguns passos:

  1. Substitua todos os “\ r \ n” por “\ r \ n”
  2. Substitua todos os “; \ r \ n” por “\ r \ n”
  3. Substitua todos os “\ r \ n” por “”

Isso coloca todos os intervalos onde eles deveriam estar e remove aqueles que estão quebrando o arquivo.

Isso funcionou para mim.

Faça esta configuração. Menu-> Ver-> Mostrar Símbolo-> desmarcar Mostrar Fim da Linha

Para alterar um documento de linhas separadas em uma única linha, com cada linha formando uma input em uma lista separada por vírgulas:

  1. Ctrl + F para abrir a busca / substituição.
  2. Clique na guia “Substituir”.
  3. Preencha a input “Localizar” com ” \r\n “.
  4. Preencha a input “Substituir por” por ” , ” ou ” , ” (dependendo da preferência).
  5. Desmarque a checkbox de seleção “Corresponder palavra inteira” (o bit importante que escapa à lógica).
  6. Verifique o botão de opção “Estendido”.
  7. Clique no botão “Substituir tudo”.

Esses passos se tornam, por exemplo,

foo bar

bar baz

baz foo

para dentro:

foo bar, bar baz, baz foo

ou: (dependendo da preferência)

foo bar, bar baz, baz foo

Talvez você possa usar plugins TextFX

No TextFX, vá para textfx edit → delete blank lines

Basta fazer um \ r com um encontrar e replace com um espaço em branco no campo de substituição para que tudo corra até uma linha. Em seguida, faça um localizar e replace (no meu caso, por dois pontos) e substitua por; \ n

🙂 -T & C