MySQL の pager が便利だった

mysql のコンソールで grep とか使えないかなぁと思っていたら pager を使えば出来ることを今更知った。

MySQL :: MySQL 5.1 リファレンスマニュアル :: 7.7.2 mysql Commands
http://dev.mysql.com/doc/refman/5.1/ja/mysql-commands.html

mysql のプロンプトで以下のように pager (または\P) を指定すればよい。

grep

mysql> pager cat | grep hoge
PAGER set to 'cat | grep hoge'

・ファイルに保存

mysql> \P cat > ~/dump.txt
PAGER set to 'cat > ~/dump.txt'

・less

mysql> \P less
PAGER set to 'less'

less の -S オプションを使うと画面の幅に合わせて折り返しせず、横スクロールができるようになることを知った。。
結果レコードが横に長く表示が崩れる場合は \G を使っていたがこっちの方が見やすい。

mysql> \P less -S
PAGER set to 'less -S'

出力を標準に戻すには、nopager コマンドを実行する。

mysql> nopager
PAGER set to stdout

ログイン時にオプションを指定してもよい。

$ mysql --pager='less -S' -uroot -p