Você pode criar um dump hexadecimal do seu arquivo com xxd
, que faz parte do pacote vim-common
.
xxd file.csv | less
Em seguida, verifique os finais da linha:
- 0a = > \ n
- 0d = > \ r
- 0d0a = > \ r \ n
Eu tenho um arquivo csv que pretendo importar para uma tabela mysql
. Por isso, gostaria de me certificar de que estou a relatar que é LINES TERMINATED BY
corretamente. No entanto, não consigo descobrir quais caracteres estão terminando as linhas neste csv.
Eu acho que é terminado por \n
(o padrão Unix EOL). 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 mostrou apenas a localização das quebras de linha com $
Qualquer sugestão seria apreciada
Você pode criar um dump hexadecimal do seu arquivo com xxd
, que faz parte do pacote vim-common
.
xxd file.csv | less
Em seguida, verifique os finais da linha:
Você pode usar o file
para fornecer uma indicação do tipo de finalização da 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 linha e alimentação de linha ("\ r \ n") como final de linha, o qual o Unix usa apenas o avanço de linha ("\ n").
Assim, você pode determinar o que é EOL de qualquer arquivo desejado.
Em vez de VERIFICAR, por que não simplesmente definir o estilo de finalização de linha de sua preferência:
sudo apt-get dos2unix
lhe dará acesso aos utilitários de linha de comando dos2unix
e unix2dos
.
Estes irão converter arquivos de texto de acordo com os nomes.
Advertência: arquivos com conteúdo misto tem sido problemático, não estou atualizado se esse problema desapareceu.