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