Pull to refresh

Comments 30

Такая мелочь, но какая приятная. В закладки.
grc это такой небольшой скриптик на питоне, так что можно обойтись дажже без установки полного пакета. Исходники у автора kassiopeia.juls.savba.sk/~garabik/software/grc/
Во втором — перенаправляем вывод через cat, при этом таблица магическим образом пропадает.

mysql -e "select curdate();" --table | cat -

и таблица на месте.
Спасибо за уточнение! Добавил комментарий в топик. Но если бы в man эта опция была замечена до --pager, времени ушло бы больше в попытках использовать обертку для табличного вывода :)
А горизонтальный скроллинг там еще не прикручивается?
не тестил, но скорее всего less -S поможет
Протестировал — работает!
set pager grcat ~/.grcat | less -RS;

Опция -R необходима для прокидывания цвета (row contorl chars).

Спасибо за наводку, добавил в топик!
описался — raw control chars
Еще интересно прикрутить бы:
  1. Сворачивание длинных строк что бы не рвало консоль, при этом не потеряв возможность поиска по ним
  2. Сортировку и группировку результатов
  3. Возможность прятать/показывать столбцы, ну и менять бы их местами еще
  4. Постфактумное сохранения результатов запроса
  5. Построение графиков на основе выборки
  6. Копирование отдельных столбцов, желательно с выбором разделителей, что бы например быстро выбрать только IDшники для следующего INа

И получим полноценную IDE для DB в конcоле
Еще фиксированные заголовки столбцов и фиксированные столбцы — чтобы не уползали при скроллинге.
Хороший список возможностей, аж руки зачесались сделать.

Постфактумное сохранения результатов запроса

А вот тут вы что имели в виду?
Возможность сохранить результат выборки после того как запрос выполнен, а то иногда бывает выполнился какой-то тяжелый запрос, и только потом понимаешь, что хорошо бы его результаты сохранить куда нибудь в файлик.
Если в качестве пейджера стоит less, то можно при просмотре результата набрать -o, он запросит имя файла для сохранения.
ушел перечитывать manы всех стандартных утилит…
использую в качестве pager'а less -FSinX, мнемонически легко запомнить :) (для цвета теперь еще понадобится R)
Получаются такие плюшки:
1) -F выходит из less, если всё помещается на один экран
2) -i ignore case для поиска
3) -n убирает номера строк
4) -X не очищает экран после выхода из less, что в консоли бывает полезно — видно результаты предыдущего запроса
Отличное дополнение, спасибо! Добавил в топик.
Под убунтой grc в упор не видел конфиг (not found), пришлось его положить в ~/.grc/.grcat и запускать grc .grcat — тогда всё находит.
кстати, в моём случае (debian wheezy) пришлось добавить в конец конфига ./.grcat дополнительный перевод строки, без него съедалась последняя буква в последнем слове последней строки.
Ну а для полного счастья тогда уж и рамочки с помощью sed перечертить:

image
Соам sed-скрипт в догонку:
#!/bin/sed -f
s!^|!║!g;s!|$!║!g;s!|!│!g;
/^+/bp;b
:p x;/^╔/bm;/^╟/bl
:f x;s!^+!╔!;s!-!═!g;s!+$!╗!;s!+!╤!g;h;b
:m x;s!^+!╟!;s!-!─!g;s!+$!╢!;s!+!┼!g;h;b
:l x;s!^+!╚!;s!-!═!g;s!+$!╝!;s!+!╧!g;h;b
Неплохо и глазам приятно. Не знал про эту утилиту. Спасибо автору. Меня тоже волнуют проблемы раскраски в консолях. Пользую утилиту ccze. Есть еще «цветной режим» в emacs sql-mode почти для всех клиентов. Особенно навороченный для postgresql.

настроив mysql prompt таким образом

prompt =(mysql) \u@\h [\d] >

получим информативное приглашение содержащие текущий хост, юзера и бд:

(mysql) developer@hostname [db_name] >
А можно и в bashrc присунуть:
export MYSQL_PS1="mysql: \d|> "
похоже что то упустил, сильно не бейте… Куда нужно вводить echo -n "\033[34mHELLO"? Ввожу в консоль оно и выдаёт \033[34mHELLO
в статью вкралась опечатка. Чтобы echo распознавал escape-последовательности, нужен флаг -e. Получится: echo -ne "\033[34mHELLO". В статье поправил.
Прошу прощения за некрокомментирование, но у меня есть две поправки:

1. Конфигурацию для консоли mysql лучше описывать в разделе конфига [client], а не [mysql] — тогда, например, эти настройки не будут подхватываться mysqldump'ом.

2. Конфигурацию grcat для mysql лучше хранить в файле ~/.grc/mysql-client, а запускать grcat командой «grcat mysql-client» — утилита сначала ищет имя, заданное в командной строке в папках ~/.grc/ /usr/local/share/grc/ /usr/share/grc/ и только не найдя такового трактует параметр как абсолютный путь к конфигурационному файлу. Таким образом можно удобно разделять конфигурации grcat для разных приложений.
Хорошие дополнения, можно было сразу в pull-request.
Что-то в секции [client] опция pager у меня не подхватилась совсем.
Sign up to leave a comment.

Articles