Cómo excluir una palabra con grep
Tabla de contenido:
La herramienta de línea de comando grep es tremendamente útil para buscar líneas y fragmentos de datos de texto que coincidan con una cadena, un carácter, una palabra o una expresión regular definida. Si bien la mayoría de los usos de grep son para ordenar datos para coincidencias de sintaxis, ¿qué sucede si desea excluir una palabra o cadena con grep? Excluir coincidencias de línea con grep es tan útil como encontrar e imprimir coincidencias en grep, así que veamos cómo excluir coincidencias de cadenas y excluir palabras con grep.
Obviamente querrá tener algo de experiencia en la línea de comandos y exposición a grep para encontrar esto útil. Si desea seguir adelante, puede abrir la aplicación Terminal y probarlo usted mismo. Dado que grep es una utilidad independiente del sistema operativo, puede usar el truco de exclusión en Mac OS, Linux, Unix o cualquier otra cosa que tenga que use grep.
Cómo excluir una sola palabra con grep
La forma más sencilla de excluir líneas con una coincidencia de cadena o sintaxis es usando grep y el indicador -v.
Por ejemplo, digamos que estamos usando cat para imprimir un archivo en la línea de comando, pero queremos excluir todas las líneas que incluyen el término "EstaPalabra", entonces la sintaxis sería la siguiente:
ejemplo de gato.txt | grep -v EstaPalabra"
La salida será el archivo de texto ejemplo.txt pero excluyendo cualquier línea que contenga una cadena que coincida con “EstaPalabra”.
También puede usar grep directamente en los archivos y excluir las coincidencias de línea según las palabras o la sintaxis, así:
"grep -v EstaPalabra>"
Use el que funcione mejor para su flujo de trabajo particular.
Cómo excluir varias cadenas o palabras con grep
Ahora que sabe cómo excluir coincidencias para una sola palabra, la siguiente pregunta obvia es sobre la exclusión de varias palabras con grep. Eso es igual de simple, y hay algunas maneras diferentes de lograr esto usando el indicador -v así como el indicador -e.
Primero tomemos el ejemplo anterior de usar cat en un archivo canalizado a grep, y excluyamos cualquier línea que coincida con dos palabras; "Palabra1" y "Palabra2", esto se vería así:
"ejemplo de gato.txt | grep -v -e Palabra1 -e Palabra2"
Cualquier línea que contenga "Palabra1" o "Palabra2" se excluirá de los resultados impresos.
También puedes usar grep directamente en archivos como antes:
"grep -v -e Word1 -e Word2 ejemplo.txt"
Otro enfoque es separar qué excluir con grep usando una canalización para separar cada coincidencia, así:
grep -Ev palabra1|palabra2 ejemplo.txt"
Si prueba cualquiera de estas opciones en un archivo de texto de ejemplo, verá que el resultado es idéntico independientemente del enfoque que adopte, cada una de las cuales excluye las líneas que incluyen las frases, sintaxis, palabras o coincidencia de texto.
Genial, ¡muéstrame un ejemplo útil de exclusión de datos con grep!
Para un ejemplo práctico que los usuarios avanzados de Mac pueden encontrar útil, podemos usar la exclusión grep al imprimir y consultar el historial de la línea de comandos para encontrar comandos ejecutados previamente para encontrar coincidencias predeterminadas, pero excluyendo algunas cadenas predeterminadas seleccionadas del producción.
En el ejemplo aquí, imprimiremos el historial de comandos para las coincidencias de cadenas predeterminadas, pero excluiremos cualquier coincidencia que tenga que ver con iTunes según lo definido por “com.apple.itunes”:
"history |grep defaults write |grep -v -e com.apple.itunes"
Entonces, si ha estado siguiendo, esto informaría todas las ejecuciones históricas del comando "escritura predeterminada", pero excluyendo todo lo relacionado con la aplicación iTunes. Bonito, ¿eh?
Si tiene algún uso particularmente útil para excluir coincidencias con grep, ¡compártalo con nosotros en los comentarios a continuación! Y si disfrutó de este artículo, es casi seguro que le gustaría navegar a través de nuestros numerosos artículos de línea de comandos aquí, donde hay mucho más que aprender.