Run a query in psql and output the result as CSV.
Grab the file psql2csv
, put in somewhere in your $PATH
, and make it
executable:
$ curl https://raw.githubusercontent.com/fphilipe/psql2csv/master/psql2csv > /usr/local/bin/psql2csv && chmod +x /usr/local/bin/psql2csv
psql2csv [OPTIONS] < QUERY
psql2csv [OPTIONS] QUERY
The query is assumed to be the contents of STDIN, if present, or the last argument. All other arguments are forwarded to psql except for these:
-h, --help show this help, then exit
--delimiter=DELIMITER use a different delimiter than comma (e.g. $'\t' for tab)
--encoding=ENCODING use a different encoding than UTF8 (Excel likes LATIN1)
--no-header do not output a header
--dry-run print the query that would be run without running it
$ psql2csv dbname "select * from table" > data.csv
$ psql2csv dbname < query.sql > data.csv
$ psql2csv --no-header --delimiter=$'\t' --encoding=latin1 dbname <<sql
> SELECT *
> FROM some_table
> WHERE some_condition
> LIMIT 10
> sql
Philipe Fatio (@fphilipe)