2008年11月27日

color with grep

grepコマンドで見つかったキーワードをハイライト表示すると非常に見やすくなります。

$ cat file
aa111111
aa222222
bb111111
bb222222

GNU grepであれば、grep自体のカラーオプションを使います。

$ export GREP_COLOR='01;31'
$ export GREP_OPTIONS='--color=auto'

というように環境変数を定義した上でgrepを実行すると、太字の赤色でマッチした部分を表示してくれます。(最初の01がボールド指定で、セミコロンの次の31が赤色の指定です。ANSIカラー指定になります。)

grep aa11 file
aa111111

ただ、lessなどのページャーにパイプで渡すと色が消えてしまいます。
これは、例えばファイルにリダイレクトしたりパイプで別のコマンドに渡したときに制御文字が渡らないようauto自動で判別しているからなのです。 grepコマンドの出力がターミナルのときだけ色ありにするのが--color=auto指定です。

常に色つきにしてファイルにリダイレクトすると何が起きるか見てみましょう。

$ export GREP_OPTIONS='--color=always'
$ grep aa11 file > output
$ cat -v output
^[[01;31maa11^[[00m^[[K1111

二次利用するには危険なことがわかるかと思います。

なので、lessに渡しても色つきで表示させるためにはgrep側で常に色つきで出力するための指定と、less側でそれを解釈して色つきで表示するための指定が必要になります。

$ export GREP_OPTIONS='--color=always'
$ grep 1111 file | less -R
aa111111
bb111111

GREP_COLORとGREP_OPTIONSは毎回指定するのはナンセンスなので.bash_profileなどに指定しておくのがよいと思いますが、alwaysではなくautoにしておくべきでしょう。

posted by ほんのしおり at 21:42| Comment(0) | TrackBack(0) | パソコン・インターネット

2008年11月10日

iPhoneが壊れました(涙)

わたしのお気に入りの相棒、iPhoneが壊れてしまいました。
最初は「あれ、電波が入らない?」という症状だったのですが強制的に電源OFFしてみたところ延々と再起動を繰り返すようになり、ついに「アクティベーションして下さい」という画面になってしまってお手上げ。

ネットで検索してみるとここ数ヶ月に同じような経験をした方が何人もいらっしゃいました。

工場出荷状態に戻して(リカバリーして)みても、やはり治りません。リカバリー後のリストアが途中で「接続されていません」というメッセージとともに終了してしまいます。
機器交換しかなさそうです。がっくり。

posted by ほんのしおり at 01:23| Comment(0) | TrackBack(0) | パソコン・インターネット

2008年06月17日

[Tips] seq コマンド

UNIXの勉強はSolarisでスタートしたので、いまだにGNUの便利なコマンドに出会うと「あったらいいなが揃ってて感激!」ということがあります。本日ご紹介する seq コマンドもその一つ。

bookmarks$ for i in `seq 1 10` ; do echo $i ; done
1
2
3
4
5
6
7
8
9
10
bookmarks$ 
桁数揃えもできます。
bookmarks$ for i in `seq -w 1 10` ; do echo $i ; done
01
02
03
04
05
06
07
08
09
10
bookmarks$ 

下の例はRedhat Enterprise Linux 4.4 なのですが、coreutilsに含まれているということは、ほぼ全てのLinuxで利用できるようになっていると思われます。

bookmarks$ rpm -qf `which seq` 
coreutils-5.2.1-31.4
bookmarks$ 

posted by ほんのしおり at 23:48| Comment(0) | TrackBack(0) | パソコン・インターネット