現在、いくつかの問題を見つけるために慣れていないログをたくさん見ています。私が見た最初のファイルはEvents.logで、less
異なる時間に同じイベントを表示するように見えるページが少なくとも3つ以上ありました。そのイベントはかなり大丈夫だった。このイベントをフィルタリングしたいです。現在終了less
し、次の操作を行います。
grep -v "event text" Events.log | less
これで、フィルタリングしたい他の一般的で興味深いイベントがたくさん表示されます。私ができる方法はありませんか?grep -v
~へのless
?必ずしなければならないより
egrep -v "event text|something else|the other thing|foo|bar" Events.log | less
私の考えでは、これはすべての種類のログファイルを表示するのに便利な機能です。less
このツールでなければ、私が探している品質を持つ他のツールはありますか?ただless
組み込まれたgrep
。
ベストアンサー1
less
非常に強力なパターンマッチング機能を持っています。 ~からマニュアルページ:
&pattern
pattern
一致する行のみが表示され、一致しない行はpattern
表示されません。空の場合pattern
(&
すぐに入力した場合ENTER)、すべてのフィルタリングがオフになり、すべての行が表示されます。フィルタリングが適用されると、プロンプトの先頭に & 記号が表示され、ファイルの一部の行が非表示になる可能性があることを警告します。†
/
コマンドに示すように、特定の文字は特殊文字です。
^N
または!
一致しない行のみが表示されます
pattern
。^R
正規表現のメタ文字を解釈しないでください。つまり、単純リテラル比較を実行します。
____________
†特定の文字は、最初に入力するとpattern
検索タイプが変わるのではなく、特殊文字ですpattern
。
(もちろん、は^N
それぞれ+と+を^R
表します。) CtrlNCtrlR
たとえば、&dns
パターンと一致する行のみが表示されdns
、&!dns
これらの行はパターンと一致しない行のみを表示するようにフィルタリング(除外)されます。
/
コマンドの説明を参照してください。
これは、
pattern
システム提供の正規表現ライブラリで認識される正規表現です。
だから
ð[01]
eth0
またはを含む行を表示します。eth1
&arp.*eth0
arp
次の内容を含む行が表示されますeth0
&arp|dns
arp
またはを含む行を表示します。dns
そして!
上記の内容はすべてキャンセルできます。したがって、質問に使用したいコマンドの例は次のとおりです。
&!event text|something else|the other thing|foo|bar
(および/次/前に移動)を使用して検索することもできます。/pattern
?pattern
n
N