¿Cómo especificar múltiples condiciones de filtro conectadas con AND en menos?
Me gustaría filtrar un registro que tenga líneas que NO contengan "nat" pero que contengan una dirección IP 192.168.1.1, como:
&/!nat && 192.168.1.1
Sin embargo no funciona, el resultado está vacío...
Por favor avise.
Respuesta1
Desde la versión v569,menospuede "apilar" filtros para "profundizar" en un archivo de registro.
Desde la página de manual:
&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.
Así que aquí harías: &!nat
Enterthen &Ctrl+R192.168.1.1
Enter, o para evitar coincidencias 192.168.1.1
internas 192.168.1.123
, por ejemplo &Ctrl+R\<192\.168\.1\.1\>
Enter.
Respuesta2
Estoy convencidomenosno permita mostrar solo líneas con 192.168.1.1
pero sin nat
.
- Puedes usar
|
(o) ||
,&
y&&
no existen- Sólo puedes invertir la coincidencia para toda la expresión (con
!
al principio), pero!
no es especial después
Una alternativa es utilizarsedantesmenos.
sed -n -e '/nat/ d' -e '/192\.168\.1\.1/ p' FILE | less