Removendo linhas extras irritantes em arquivos transferidos via FTP

Já passou pela tristeza de baixar um arquivo via FTP e, ao editá-lo, encontrar linhas extras, parágrafos duplos, quebras de linhas em excesso, e um MONTE de espaço vazio?

Pois é, amiguinhos, isso não é muito comum mesmo. Mas só quem já passou por isso pode entender o suplício que é!

Normalmente, quando isso acontece, o arquivo adiciona +1 linha extra, para cada linha vazia já existente nele, em cada transferência! :/

Ou seja: você pode começar com um arquivo de 30 linhas, e em alguns uploads e downloads, estar com 180, 240, 360 linhas!!!

Por que isso acontece?

Bom, eu já pesquisei um bocado para tentar entender o motivo disso.
Uma das razões propostas é que poderia ser pelo encoding.
Existe o UTF-8, nosso querido e amado topa-tudo. Mas alguns editores e SO’s salvam os arquivos com um negócio chamado BOM, ou seja: UTF-8 with BOM.

O BOM é um caracter unicode que indica aos arquivo UTF-8 a extremidade de um arquivo de texto ou de dados. Wikipedia.

Para salvar sem o BOM, é bem simples. No próprio Sublime Text, temos como selecionar o “Reopen with Encoding” para UTF-8, e isso reabrirá o arquivo sem o BOM.

Mas não adiantou….

Pois é, se você tentou, deve ter resolvido, OU NÃO.
Pra mim, nunca resolveu. Ví muitos relatos felizes em fórums, mas meu testemunho essa técnica não tem.


Caramba, Rômulo, então como eu tiro essas malditas linhas extras?!! Não te pago pra contar histórinha!

Bom, é verdade, vc não me paga. hehe
Bom, eu resolvi dum jeito muito bacana!

Fazendo uma busca por uma Regular Expression e substituindo por um /n.

Find and Replace com REGEX para remover linhas extras.

Com o nosso arquivo zica aberto no Sublime Text 3, vamos em Find -> Replace (ou Command+H (max), Ctrl+H (win, linux)), preenchendo da seguinte forma:

Find and Replace Extra Lines no Sublime com Regex

Note que o sinal de soma, que parece um 3 ou um E, enfim… Ele é o botão que vai ativar a busca por Regular Expressions, o REGEX.

Usaremos o REGEX [\r\n]{2,} que irá identificar todas as quebras de linhas repetidas, substituindo por apenas uma \n.

Clique em Replace All, e seja feliz!

Arquivo novo, vida nova.

É isso aí pessoal, espero ter ajudado.

Eu tive esse problema pela primeira vez em 2011, quando lidava em alguns arquivos gerados em um Mac, enviados para um servidor VPS com configuração duvidosa, e baixados em meu lindo Windows 7, à época. Arquivos com 30 linhas de código tinham 90, depois 120, 150, e por aí vai, de acordo com que eu upava para o servidor.

Alguns meses atráz tive novamente essa situação, embora em OS e circunstâncias diferentes. Até criei Este GIST, que me ajuda toda vez que preciso resolver essa situação!