У меня есть CSV-файл, который я собираюсь импортировать в таблицу mysql
. Поэтому я хотел бы убедиться, что я правильно сообщаю о LINES TERMINATED BY
. Однако я не могу понять, какие символы заканчивают строки в этом CSV.
Я бы предположил, что оно заканчивается \n
(стандартная Unix EOL). Как я могу определить это наверняка?
Я пробовал
cat -v file.csv
file file.csv
I ' Мы также попытались использовать vim и :set list
, которые только что показали расположение разрывов строк с $
. Любые предложения будут оценены по достоинству
Вы можете создать hex-дамп своего файла с помощью xxd
, который является частью пакета vim-common
.
xxd file.csv | less
Затем проверьте окончания строк:
Можно использовать file
, чтобы дать Вам признак типа окончаний строки.
Unix:
$ file file1.txt
file1.txt: ASCII text
DOS:
$ file file2.txt
file2.txt: ASCII text, with CRLF line terminators
и зная, что DOS использует возврат каретки и перевод строки (" \r\n") как окончание строки, какой Unix использует просто перевод строки (" \n").
, Таким образом, можно определить то, что является EOL любого файла, который Вы хотите.
Вместо того, чтобы ПРОВЕРИТЬ, почему бы просто НЕ УСТАНОВИТЬ предпочитаемый стиль окончания строки:
sudo apt-get dos2unix
предоставит вам доступ к утилитам командной строки dos2unix
и unix2dos
.
Они преобразуют текстовые файлы в соответствии с именами.
Предостережение: файлы со смешанным контентом были хлопотными, я не в курсе, исчезла ли эта проблема.