Парсинг строки подключения к БД PostgreSQL

Предположим есть строка подключения к PGSQL БД:

DATABASE_URL=postgres://user:pass@host:port/database

Из этой строки нужно получить - имя пользователя, пароль, хост, порт, имя базы данных, здесь как пример можно использовать awk:

DB_TYPE=$(echo $DATABASE_URL | awk -F'[:@/]' '{print $1}')"ql"
DB_USER=$(echo $DATABASE_URL | awk -F'[:@/]' '{print $4}')
DB_PASSWORD=$(echo $DATABASE_URL | awk -F'[:@/]' '{print $5}')
DB_HOST=$(echo $DATABASE_URL | awk -F'[:@/]' '{print $6}')
DB_PORT=$(echo $DATABASE_URL | awk -F'[:@/]' '{print $7}')
DB_DATABASE=$(echo $DATABASE_URL | awk -F'[:@/]' '{print $8}')

Смотрим результат:

echo -e "USER: $DB_USER, Database - $DB_DATABASE"

image