regex - regular - Cómo invertir una expresión grep
regular expression creator online (5)
Agregue la opción -v
a su comando grep
para invertir los resultados.
La siguiente expresión grep enumera con éxito todos los archivos .exe y .html en el directorio actual y subdirectorios.
ls -R |grep -E .*[/.exe]$/|.*[/.html]$
¿Cómo invierto este resultado para enumerar aquellos que no son un .html o .exe en su lugar? (Eso es !=
.)
Como se indicó varias veces, la inversión se logra mediante la opción -v
a grep
. Permítanme agregar la nota (afortunadamente entretenida) de que podrían haberlo descifrado hojeando el texto de ayuda de grep
:
grep --help | grep invert
-v, --invert-match selecciona líneas que no coinciden
Use la opción de línea de comandos -v
o --invert-match
,
ls -R |grep -v -E .*[/.exe]$/|.*[/.html]$
grep "subscription" | grep -v "spec"
grep -v
o
grep --invert-match
También puedes hacer lo mismo usando find
:
find . -type f /( -iname "*" ! -iname ".exe" ! -iname ".html"/)
Más información here .