Limpando um arquivo de texto com uma variedade de quebras de linha CR e LF

3

Estou tentando importar para o mySQL um arquivo de texto contendo memos. Eu não sei como eles conseguiram fazer isso, mas enquanto o campo memo é consistentemente terminado por CR LF, partes do texto em si contêm uma mistura de quebras de linha CR, LF e CR LF também.

Naturalmente isso quebra minha capacidade de importá-lo, pois não há uma indicação clara do que constitui uma quebra de linha. Aproximadamente metade dos dados é perdida durante a importação e 25% do que fez o corte acaba truncado.

Existe alguma maneira possível de resolver essa bagunça? Foi originalmente exportado do Access.

Obrigado!

    
por Ivan 27.08.2013 / 14:47

3 respostas

1

Se o bom CR + LF ficar fora das aspas simples que cercam o campo Memorando, o seguinte lookbehind deve funcionar para corresponder ao CR + LF que você deseja excluir:

(?<!')\r\n

Editar ao vivo no Debuggex

Resposta original:

Você pode executar uma expressão regular no arquivo de texto?

\r\n?|\n

Substitua cada correspondência pelo seu código de nova linha desejado, como \r\n .

    
por 27.08.2013 / 16:06
0

Dependendo do que você gostaria de manter, seja CR-LF ou LF, você poderia usar um unix2dos / dos2unix utilitário de estilo que pode converter e limpar o seu arquivo de importação de CR-LF para LF e vice-versa, de modo que é uniforme por toda parte.

Se você estiver em uma plataforma Unix / Linux, você deve ter os comandos dos2unix e unix2dos disponíveis. Se você está no Windows e não tem Cygwin (ou equivalente), você pode tentar tofrodos .

    
por 27.08.2013 / 14:56
0

Se houver CR LF dentro dos próprios dados e eles não estiverem entre algo como qualificador (por exemplo ""), então obviamente essas linhas serão divididas em várias linhas. A melhor aposta é limpar os dados no Access e exportar novamente. Se os LFs CR estiverem qualificados, você poderá manipular o arquivo (provavelmente usaria o AWK) e substituir o CR LF não qualificado por \ n.

Para ser mais preciso, preciso saber um pouco mais sobre os dados.

    
por 27.08.2013 / 15:21

Tags