Tenho um arquivo csv que pretendo importar para uma mysql
tabela. Gostaria, portanto, de ter certeza de que estou relatando isso LINES TERMINATED BY
corretamente. No entanto, não consigo descobrir quais caracteres estão encerrando as linhas neste csv.
Eu acho que ele foi encerrado por \n
(o EOL padrão do Unix). Como posso determinar isso com certeza?
eu tentei
cat -v file.csv
file file.csv
Eu também tentei usar o vim e :set list
que apenas mostrou a localização das quebras de linha com$
Qualquer sugestão seria apreciada
Responder1
Você pode criar um despejo hexadecimal do seu arquivo xxd
que faz parte do vim-common
pacote.
xxd file.csv | less
Em seguida, verifique os finais de linha:
- 0a => \n
- 0d => \r
- 0d0a => \r\n
Responder2
Você pode usar o file
para fornecer uma indicação do tipo de final de linha.
Unix:
$ file file1.txt
file1.txt: ASCII text
DOS:
$ file file2.txt
file2.txt: ASCII text, with CRLF line terminators
e sabendo que o DOS usa retorno de carro e avanço de linha ("\r\n") como final de linha, que o Unix usa apenas avanço de linha ("\n").
Assim, você pode determinar qual é o EOL de qualquer arquivo que desejar.
Responder3
Em vez de CHECKING, por que não simplesmente DEFINIR o estilo de final de linha de sua preferência:
sudo apt-get dos2unix
lhe dará acesso dos2unix
e unix2dos
utilitários de linha de comando.
Estes irão converter arquivos de texto de acordo com os nomes.
Advertência: arquivos com conteúdo mistotemsido problemático, não estou atualizado sobre se esse problema desapareceu.