Преобразовать CSV с разделителями трубы в табуляцию с помощью пакетного сценария - PullRequest
1 голос
/ 15 декабря 2011

Я пытаюсь написать пакетный скрипт, который будет запрашивать базу данных Postgres и выводить результаты в CSV.В настоящее время он запрашивает базу данных и сохраняет выходные данные как csv с разделителями каналов.

Я хочу, чтобы выходные данные были разделены символами табуляции, а не разделителями каналов, поскольку в конечном итоге я буду импортировать CSV в Access.Кто-нибудь знает, как этого можно достичь?

Текущий код:

cd C:\Program Files\PostgreSQL\9.1\bin
psql -c "SELECT * from jivedw_day;" -U postgres -A -o sample.csv cscanalytics

postgres = имя пользователя cscanalytics = database

1 Ответ

4 голосов
/ 15 декабря 2011

Вы должны использовать COPY для вывода CSV:

psql -c "copy jivedw_day to stdout csv delimiter E'\t'" -o sample.csv -U postgres -d csvanalytics

Часть delimiter E'\t' даст вам вывод с вкладками вместо запятых в качестве разделителя.Есть и другие варианты, для получения более подробной информации см. документацию .

Использование -A, как вы , просто выводит обычный интерактивный вывод в sample.csv без нормального заполнения для выравнивания столбцов, поэтому вы видите каналы:

-A
--no-align
Переключение в режим невыровненного вывода.(Режим вывода по умолчанию выровнен в противном случае.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...