다양한 CR 및 LF 줄 바꿈으로 텍스트 파일 정리 혼합되어 있습니다. 줄 바꿈을 구성하는 요소에

메모가 포함 된 텍스트 파일을 mySQL로 가져 오려고합니다. 그들이 어떻게 관리했는지는 모르겠지만 메모 필드는 CR LF에 의해 일관되게 종료되지만 텍스트 자체에는 CR, LF 및 CR LF 줄 바꿈이 혼합되어 있습니다.

줄 바꿈을 구성하는 요소에 대한 명확한 표시가 없으므로 당연히 가져 오기 기능이 손상됩니다. 가져 오는 동안 데이터의 약 절반이 손실되고 컷을 생성 한 것의 25 %가 잘립니다.

이 엉망진창을 분류하는 가능한 방법이 있습니까? 원래 Access에서 내보냈습니다.

감사!



답변

양호한 CR + LF가 메모 필드를 둘러싸고있는 작은 따옴표를 벗어나면 삭제하려는 CR + LF와 일치하도록 다음 모양이 작동해야합니다.

(?<!')\r\n

Debuggex에서 실시간 편집

원래 답변 :

텍스트 파일에서 정규식을 실행할 수 있습니까?

\r\n?|\n

모든 일치 항목을 원하는 개행 코드로 바꿉니다 (예 🙂 \r\n.


답변

유지하려는 CR-LF 또는 LF에 따라 가져 오기 파일을 CR-LF에서 LF로 변환하거나 정리할 수 있는 unix2dos / dos2unix 스타일 유틸리티를 사용할 수 있으며 그 반대도 마찬가지입니다.

유닉스 / 리눅스 플랫폼에 있다면 dos2unix 및 unix2dos 명령을 사용할 수 있어야합니다.
Windows를 사용 중이고 Cygwin (또는 동등한 제품) 이없는 경우 tofrodos를 시도 할 수 있습니다.


답변

데이터 자체에 CR LF가 있고 일종의 한정자 (예 : “”)로 묶여 있지 않으면 해당 줄이 여러 줄로 나뉩니다. 가장 좋은 방법은 Access에서 데이터를 정리하고 다시 내보내는 것입니다. CR LF가 정규화 된 경우 파일을 조작하고 (아마도 AWK를 사용하고있을 것임) 규정되지 않은 CR LF를 \ n으로 바꿀 수 있어야합니다.

좀 더 정확한 정보를 얻으려면 데이터에 대해 좀 더 알아야합니다.