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