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따라서 여기서는 then , 또는 예를 들어 내부 &Ctrl+R192.168.1.1
Enter일치를 피하기 위해 수행합니다 .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