3

Я пытаюсь импортировать в MySQL текстовый файл, содержащий заметки. Я не знаю, как им удалось это сделать, но хотя мемо-поле последовательно завершается CR LF, в отдельных частях текста также содержится смесь разрывов строк CR, LF и CR LF.

Естественно, это нарушает мою способность импортировать его, поскольку нет четких указаний на то, что представляет собой разрыв строки. Примерно половина данных теряется при импорте, и 25% того, что было сделано, в итоге усекается.

Есть ли реальный способ разобраться в этом беспорядке? Первоначально он был экспортирован из Access.

Спасибо!

3 ответа3

1

Если хороший CR+LF выходит за пределы одинарных кавычек, которые окружают поле Memo, следующий обзор должен работать так, чтобы соответствовать CR+LF, который вы хотите удалить:

(?<!')\r\n

Визуализация регулярных выражений

Редактировать в прямом эфире на Debuggex

Оригинальный ответ:

Можете ли вы запустить регулярное выражение в текстовом файле?

\r\n?|\n

Замените каждое совпадение нужным кодом новой строки, например, \r\n .

0

В зависимости от того, что вы хотите сохранить, CR-LF или LF, вы можете использовать утилиту стиля unix2dos/dos2unix, которая может преобразовать и очистить ваш файл импорта из CR-LF в LF и наоборот, чтобы он был равномерным во всем.

Если вы работаете на платформе Unix/Linux, у вас должны быть в наличии команды dos2unix и unix2dos.
Если вы работаете в Windows и у вас нет Cygwin (или его аналога), вы можете попробовать тофродос.

0

Если внутри самих данных есть CR LF, и они не заключены в что-то вроде классификатора (например, ""), то, очевидно, эти строки будут разбиты на несколько строк. Лучше всего очистить данные в Access и снова экспортировать. Если CR LF квалифицированы, то вы должны иметь возможность манипулировать файлом (я бы, вероятно, использовал AWK) и заменить неквалифицированную CR LF на \n.

Чтобы быть более точным, мне нужно знать немного больше о данных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .