何年もの間、UnixでのGNUのgrep(Linuxフレーバーだけでなく)が、xterm / gnome-terminal / kconsoleのような色対応のTERMをインタラクティブに使用していることを検出し、コンテキスト内で検索式をうまく色付けしていることに気づきました。
正規表現または単純な検索文字列のみを太字/強調表示するが、grepとは異なり、他の方法では行を除外しない単純なCLIツールは何でしょうか。たぶん、sedのトリックでこれを行うことができます。これをエイリアスして、後でコマンドをパイプすることができますか?
例
そこで、通常は別のプログラムのCSVのようなデータを生成するプログラムpricehist.shを作成しましたが、次のように視覚的に頻繁に検査します。
./pricehist.sh mostalexp-GPW 28 |sort -r -g -k 3 -t ' ' |column -t -s", "
MOSTALEXP,20120222,0.78,0.79,0.76,0.77,63900,0.77 0.04000 5.00000 -0.01000 -1.25000 49203
MOSTALEXP,20120203,0.82,0.82,0.78,0.78,446089,0.78 0.04000 4.87805 0 0 347949
MOSTALEXP,20120124,0.71,0.71,0.69,0.71,61478,0.71 0.03000 4.16667 -0.01000 -1.38889 43649
MOSTALEXP,20120130,0.73,0.73,0.70,0.73,59488,0.73 0.03000 4.10959 0 0 43426
MOSTALEXP,20120210,0.79,0.81,0.77,0.81,104120,0.81 0.03000 3.75000 0.01000 1.25000 84337
MOSTALEXP,20120213,0.80,0.80,0.78,0.80,86606,0.80 0.03000 3.70370 -0.01000 -1.23457 69284
MOSTALEXP,20120126,0.69,0.75,0.69,0.72,146353,0.72 0.02000 2.81690 0.04000 5.63380 105374
MOSTALEXP,20120131,0.72,0.73,0.71,0.72,72734,0.72 0.02000 2.73973 0 0 52368
MOSTALEXP,20120123,0.72,0.73,0.71,0.72,24133,0.72 0.02000 2.73973 0 0 17375
MOSTALEXP,20120214,0.78,0.81,0.78,0.79,56990,0.79 0.02000 2.50000 0.01000 1.25000 45022
MOSTALEXP,20120209,0.79,0.82,0.79,0.80,65243,0.80 0.02000 2.46914 0.01000 1.23457 52194
MOSTALEXP,20120118,0.69,0.70,0.68,0.69,62520,0.69 0.01000 1.44928 0.01000 1.44928 43138
MOSTALEXP,20120125,0.70,0.71,0.70,0.71,92317,0.71 0.01000 1.40845 0 0 65545
MOSTALEXP,20120201,0.71,0.74,0.71,0.74,199791,0.74 0.01000 1.38889 0.02000 2.77778 147845
MOSTALEXP,20120127,0.73,0.73,0.71,0.73,38157,0.73 0.01000 1.38889 0.01000 1.38889 27854
MOSTALEXP,20120207,0.78,0.79,0.77,0.79,56243,0.79 0.01000 1.28205 0.01000 1.28205 44431
MOSTALEXP,20120206,0.78,0.80,0.77,0.78,133597,0.78 0.01000 1.28205 0.02000 2.56410 104205
MOSTALEXP,20120221,0.81,0.81,0.79,0.80,112738,0.80 0.01000 1.25000 0.01000 1.25000 90190
MOSTALEXP,20120217,0.80,0.85,0.79,0.80,272245,0.80 0.01000 1.25000 0.05000 6.25000 217796
MOSTALEXP,20120216,0.81,0.81,0.79,0.80,30814,0.80 0.01000 1.25000 0.01000 1.25000 24651
MOSTALEXP,20120113,0.66,0.66,0.65,0.65,90267,0.65 0.00500 0.76336 0.00500 0.76336 58673
MOSTALEXP,20120220,0.80,0.82,0.80,0.80,83881,0.80 0 0 0.02000 2.50000 67104
MOSTALEXP,20120215,0.80,0.82,0.79,0.80,128714,0.80 0 0 0.03000 3.79747 102971
MOSTALEXP,20120208,0.79,0.84,0.79,0.81,280446,0.81 0 0 0.05000 6.32911 227161
MOSTALEXP,20120120,0.74,0.74,0.72,0.73,128831,0.73 0 0 0.02000 2.77778 94046
MOSTALEXP,20120117,0.67,0.71,0.67,0.69,284886,0.69 0 0 0.04000 5.97015 196571
MOSTALEXP,20120116,0.65,0.67,0.65,0.67,9548,0.67 0 0 0.02000 3.07692 6397
MOSTALEXP,20120202,0.75,0.87,0.75,0.82,1270955,0.82 -0.01000 -1.35135 0.13000 17.56757 1042183
MOSTALEXP,20120119,0.70,0.74,0.70,0.72,320471,0.72 -0.01000 -1.44928 0.05000 7.24638 230739
パイプの最後(後|column -t
)に、少なくとも文字列を強調表示するものを追加すると便利です$(date +%Y%m%d)
。これは、現時点では次のように評価されます。20120222
もう1つの例はtail -F /tmp/*.log | grep -C 9999 YouJustGotHacked
、grepで実際に行をフィルターで除外したくない場合を除いて、YouJustGotHackedをノイズで見つけやすくするだけです。