меньше: несколько условий фильтрации с AND

меньше: несколько условий фильтрации с AND

Как указать несколько условий фильтрации, связанных с помощью AND в less?

Я хотел бы отфильтровать журнал, строки которого НЕ содержат «nat», но содержат IP-адрес 192.168.1.1, например:

&/!нац && 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.

Поэтому здесь вы бы сделали: &!natEnterthen &Ctrl+R192.168.1.1Enter, или чтобы избежать сопоставления 192.168.1.1внутри 192.168.1.123, например &Ctrl+R\<192\.168\.1\.1\>Enter.

решение2

я убежденменьшене разрешать отображать только строки с , 192.168.1.1но без nat.

  • Вы можете использовать |(или)
  • ||, &и &&не существуют
  • Вы можете инвертировать только соответствие для всего выражения (с !в начале), но !не является специальным после

Альтернативой является использованиеседдоменьше.

sed -n -e '/nat/ d' -e '/192\.168\.1\.1/ p' FILE | less

Связанный контент