Изучение символов EOL в CSV

У меня есть CSV-файл, который я собираюсь импортировать в mysql Таблица. Поэтому я хотел бы убедиться, что я сообщаю, что это LINES TERMINATED BY должным образом. Однако я не могу понять, какие символы заканчивают строки в этом CSV.

Я предполагаю, что это заканчивается \n (стандартный Unix EOL). Как я могу это точно определить?

я пробовал

  • cat -v file.csv
  • file file.csv

Я также пытался использовать Vim и :set list который только что показал расположение разрывов строк с $

Мы ценим любые предложения

3 ответа

Вы можете создать hex-дамп вашего файла с помощью xxd которая является частью vim-common пакет.

xxd file.csv | less

Затем проверьте окончания строки:

  • 0a => \ n
  • 0d => \ r
  • 0d0a => \ r \ n

Вы можете использовать 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 утилиты командной строки.

Они будут конвертировать текстовые файлы в соответствии с именами.

Предостережение: файлы со смешанным содержимым были проблематичными, я не в курсе, исчезла ли эта проблема.

Другие вопросы по тегам