Во-первых, некоторые сведения: я не администратор Linux, а мой администратор Linux не программист.
Тем не менее, у нас есть cronjob, который запускает команду mysqlimport
для импорта текстового файла, который генерируется ежедневно. У меня нет контроля или участия в создании этого файла. Методом проб и ошибок мы обнаружили, что текстовый файл создается на компьютере с Windows, поэтому для аргумента lines-terminated-by
нам пришлось указать \r\n
. На прошлой неделе он перестал работать правильно, и мы определили, что это потому, что файл теперь генерируется в Linux, поэтому мы изменили его на \n
. Насколько я понимаю (что не совсем ясно), это зависит от того, кто генерирует текстовый файл, который определяет, какая платформа и кодировка используется.
У нас есть сценарий оболочки, который выполняет команду mysqlimport
. Когда мы предоставляем правильную кодировку, все работает отлично. Но поскольку мы не знаем, кто будет создавать текстовый файл, существует ли способ определить, что такое кодировка, и реализовать надлежащие символы переноса строки? (И является ли «кодировка» подходящим термином здесь?)