Разделение записей в экспорте VSQL; CR НЧ

Я экспортирую с помощью vsql и включил в заголовок явный '\pset recordsep '\n' '.

Я ожидаю, что результирующий текстовый файл будет иметь только «LF» в конце каждой записи, но вместо этого записи заканчиваются на «CRLF», несмотря на отсутствие «\ r» в разделителе записей. Для меня это проблема, так как мне нужно, чтобы в экспортированном файле не было символов '\r'. Я использую Windows.

Кто-нибудь еще столкнулся с этой проблемой? Я не мог найти ничего связанного с документацией vsql.


person TroutFishing    schedule 26.11.2014    source источник


Ответы (1)


Я пытался использовать \012 (восьмеричное для новой строки), и это приравнивается к \n, поэтому я не вижу способа сделать это в vsql.

Вы можете скачать программу с Sourceforge под названием dos2unix.exe и передать ее, например:

vsql -h myserver -U dbadmin -w mypassword -f export.sql | dos2unix.exe > output.txt

Кроме того, вторая мысль ... если вы передаете этот выходной файл на сервер unix, то вместо этого вы можете передать его в ASCII mode, который автоматически переведет CRLF для вас. Некоторые клиенты будут делать это автоматически на основе расширения файла (обычно помеченного как Automatic mode), но независимо от расширения файла вы сможете установить его специально для FTP, SFTP или даже SCP на некоторых клиентах. Имейте в виду, что для SCP он должен будет преобразовать его ДО передачи из-за требования протокола SCP знать точный размер файла еще до начала передачи.

person woot    schedule 26.11.2014
comment
В итоге я выполнил удаленный экспорт на самом сервере Unix, но подход dos2unix также кажется жизнеспособным. Ваше здоровье! - person TroutFishing; 02.12.2014