less: 여러 필터 조건에 AND 사용

less: 여러 필터 조건에 AND 사용

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.

&!natEnter따라서 여기에서 다음 을 수행 &Ctrl+R192.168.1.1Enter하거나 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

관련 정보