Question

I want to use value returned by psql in bash. This is the script:

psql "connection parameters" -c "SELECT pg_database_size('dbname');"

The output is like this:

 pg_database_size 
------------------
          5773072
(1 row)

But I only want the 5773072 so I can use it in logging. Can anyone help?

Was it helpful?

Solution

The -t (--tuples-only) option might be used also:

psql "connection parameters" -t -c "SELECT pg_database_size('dbname');"

OTHER TIPS

In addition to what @Milen already provided, you may want -A (--no-align) to remove leading white space:

psql "con params" -tAc "SELECT pg_size_pretty(pg_database_size('mydb'))"

As an aside: pg_size_pretty() may or may not be of interest.

I got it:

psql "connection parameters" -c "SELECT pg_database_size('dbname');" | tail -3 | head -1 | tr -d ' '
Licensed under: CC-BY-SA with attribution
Not affiliated with dba.stackexchange
scroll top