Как получить из таблицы первый и второй столбцы
Есть такая табличка в терминале
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+-------------+-----------+---------+-------+-----------------------
newdb | newdb_owner | SQL_ASCII | C | C |
postgres | postgres | SQL_ASCII | C | C |
template0 | postgres | SQL_ASCII | C | C | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | SQL_ASCII | C | C | postgres=CTc/postgres+
| | | | | =c/postgres
Подскажите пожалуйста, как из нее получить первый (Name) и второй (Owner) только значения столбцы с помощью sed.
Ответы (3 шт):
Автор решения: user207200
→ Ссылка
Если использование sed не является целью:
cut -s -d "|" -f 1-2 --output-delimiter=" " testfile | tail -n +2 | grep -E '\S'
newdb newdb_owner
postgres postgres
template0 postgres
template1 postgres
Автор решения: Zt.
→ Ссылка
с обработкой табличных данных лучше всего справляется awk
awk -F'|' 'NR>3 && !/^ /{print $1,$2}'
newdb newdb_owner
postgres postgres
template0 postgres
template1 postgres
Автор решения: Ivan
→ Ссылка
Используйте возможности самого Postgresql. Достаточно правильно составить SQL запрос, например так:
$ psql -c '
SELECT d.datname as "Name",
pg_catalog.pg_get_userbyid(d.datdba) as "Owner"
FROM pg_catalog.pg_database d;
'
Name | Owner
-----------+----------
postgres | postgres
template1 | postgres
template0 | postgres
(3 строки)
для получения искомой информации.