Subject: Re: psql and regex not like

From: hubert depesz lubaczewski <[email-masked]>
Date: Thu, 6 Mar 2025 12:11:10 +0100

On Thu, Mar 06, 2025 at 04:37:56AM -0500, Ron Johnson wrote:
> This statement runs great from the psql prompt.  Does exactly what I want.
> select datname from pg_database WHERE datname !~ 'template|postgres' ORDER
> BY datname;
> But it doesn't work so well from the bash prompt.  Not escaping the "!"
> generates a bunch of garbage, while escaping throws an sql syntax error.

The problem is that ! is magical in bash.

The solution is to not use it. Instead you can easily do:

psql -Xc "select datname from pg_database WHERE not datname ~ 'template|postgres' ORDER BY datname;"

Best regards,

depesz

---

From: Ron Johnson <[email-masked]>
Date: Thu, 6 Mar 2025 06:34:28 -0500

> 'template|postgres' ORDER BY datname;"

I've used WHERE NOT ()" before.  Should have thought of it here.

Thanks.

-- 
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!