Смотреть вывод mysql с табличными столбцами
Почему , когда я запускаю запрос mysql и выкидываю результаты в стандартный вывод, я получаю довольно печатную таблицу, т.е.
> mysql -e "describe <table>" <database>
+------------+--------------+------+-----+---------------------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------+--------------+------+-----+---------------------+-------+
| col1 | varchar(36) | NO | PRI | NULL | |
| col2 | int(11) | NO | | NULL | |
| col3 | varchar(35) | NO | | NULL | |
| col4 | varchar(35) | NO | | NULL | |
| col5 | varchar(25) | YES | | NULL | |
| col6 | varchar(255) | YES | | NULL | |
| col7 | varchar(255) | YES | | NULL | |
| col8 | varchar(2) | YES | | NULL | |
| col9 | varchar(75) | YES | | NULL | |
| col10 | varchar(75) | YES | | NULL | |
| col11 | varchar(75) | YES | | NULL | |
| col12 | varchar(2) | YES | | NULL | |
| col13 | varchar(10) | YES | | NULL | |
| col14 | varchar(20) | YES | | NULL | |
| col15 | timestamp | NO | | 0000-00-00 00:00:00 | |
| col16 | timestamp | NO | | 0000-00-00 00:00:00 | |
| col17 | timestamp | YES | | NULL | |
+------------+--------------+------+-----+---------------------+-------+
но если я дам запрос, используя watch
команда, табличное форматирование уходит?
то есть:
> watch -n 1 'mysql -e "describe <table>" <database>'
Every 1.0s: mysql -e "describe <table>" <database> Mon Jun 9 12:08:54 2014
Field Type Null Key Default Extra
col1 varchar(36) NO PRI NULL
col2 int(11) NO NULL
col3 varchar(35) NO NULL
col4 varchar(35) NO NULL
col5 varchar(25) YES NULL
col6 varchar(255) YES NULL
col7 varchar(255) YES NULL
col8 varchar(2) YES NULL
col9 varchar(75) YES NULL
col10 varchar(75) YES NULL
col11 varchar(75) YES NULL
col12 varchar(2) YES NULL
col13 varchar(10) YES NULL
col14 varchar(20) YES NULL
col15 timestamp NO 0000-00-00 00:00:00
col16 timestamp NO 0000-00-00 00:00:00
col17 timestamp YES NULL
Могу ли я получить это обратно? Я пытался играть с режимом --raw, но, может быть, я просто пропустил соответствующий флаг?
1 ответ
Вы ищете -t
вариант. Онлайн-справка MySQL говорит о -t
:
Вывести вывод в табличном формате. Это значение по умолчанию для интерактивного использования, но его можно использовать для вывода таблицы в пакетном режиме.Таким образом, когда вы запускаете mysql из приглашения, вы получаете хороший формат таблицы, но когда вы работаете в "пакетном режиме" (например, в скрипте или в этом случае с
watch
), вы не получите форматирование без использования -t
, То, что вы хотите, это, вероятно, несколько вариантов этого watch -n 1 'mysql -t -e "describe table" database'
который вернет красиво отформатированные таблицы.