2012年7月31日火曜日

pagerの無理矢理な使い方

mysql> pager <コマンド>

と指定してやると、出力結果が標準出力ではなくて<コマンド>に切り替えられる。
よく使うのはlessだけど、たまに変なこともしてみたくなる。


mysql> pager cat > /dev/null

SELECTの結果を全てnull deviceに棄てるという暴挙。

前に一度だけ、
`SELECTの結果を全部フェッチさせたいのでLIMITは使えない'
`けど100万行もターミナルに転送されたらウザい'
というシチュエーションがあったので使ってみた。
戻し忘れた時のorz感が大きい。


mysql> pager cat > /tmp/result

SELECTの結果を`mysqlクライアントを起動しているホストの/tmp/result'に書き込む。
LOAD DATA LOCAL INFILEと同じ様な感じ。
おとなしくtee使えって気もするけど、全部ターミナルに表示されるのが嫌な時用。
gzipでもいい感じ。

戻し忘れのorz感はピカイチ。set -o noclobberでも上書き止められなかった。。
リダイレクトを>>にすれば良いのか。


mysql> pager grep --color -i <xxx>

grepの--colorってあまり使う人いない気がする。
マッチした文字列に色つけてくれます。
WHERE col1 LIKE '%xxx%' OR col2 LIKE '%xxx%' OR .. の代わりにざっと確認するのにオススメ。
ただし、Resultの行数と実際に表示される行数が食い違うので、
細かいことよりサクサクやりたい人向けかも。

戻し忘れるとorzというよりイラっとするのが難点。


mysql> pager logger

syslogdにSELECTの結果を送り付けるという意味の判らない暴挙。


mysql> pager md5sum

こっちのサーバと向こうのサーバで、出力結果(=データの中身)が
同じかどうかをざっくり調べるのに使えるかも知れない。


mysql> pager ssh cent02 cat > /dev/pts/0

あろうことか他のノードの仮想コンソールに転送してみたり。


お手製Perlとかにつなげば、夢は無限大。

0 件のコメント :

コメントを投稿