ANDでリンクされた複数のフィルタ条件をLessとして指定する方法は?
行に「nat」は含まれていませんが、IPアドレス192.168.1.1を含むログをフィルタリングしたいと思います。たとえば、次のようになります。
&/!nat && 192.168.1.1
しかし、うまくいかず、結果が空です...
アドバイスしてください。
答え1
バージョンv569から少ないログファイルを「ドリルダウン」するためにフィルタを「スタック」することができます。
マニュアルページから:
&pattern
Display only lines which match the pattern; lines which do not
match the pattern are not displayed. If pattern is empty (if
you type & immediately followed by ENTER), any filtering is
turned off, and all lines are displayed. While filtering is in
effect, an ampersand is displayed at the beginning of the
prompt, as a reminder that some lines in the file may be hidden.
Multiple & commands may be entered, in which case only lines
which match all of the patterns will be displayed.
Certain characters are special as in the / command:
^N or !
Display only lines which do NOT match the pattern.
^R Don't interpret regular expression metacharacters; that
is, do a simple textual comparison.
&!nat
Enterしたがって、ここで次のことを行う&Ctrl+R192.168.1.1
Enterか、exampleの内部一致を避けます192.168.1.1
。192.168.1.123
&Ctrl+R\<192\.168\.1\.1\>
Enter
答え2
私は確信しています少ない192.168.1.1
を含む行のみを表示することはできませんnat
。
|
(または)を使用できます。||
&
と&&
存在しません。- 全体式(
!
で始まる)の一致を元に戻すことができ、!
それ以降は特別なものはありません。
別の方法はsed今後少ない。
sed -n -e '/nat/ d' -e '/192\.168\.1\.1/ p' FILE | less