GNU/Linux >> Tutoriales Linux >  >> Linux

¿Encontrar solo la primera aparición usando solo Grep?

Supongamos que tengo un archivo con muchas palabras, quiero encontrar solo la primera palabra con el patrón "xyz". ¿Cómo lo hago si hay varias palabras con este patrón en la misma línea?
-m devuelve todas las palabras de la primera línea en las que coincide. Solo necesito el comando grep.

Respuesta aceptada:

Por defecto grep imprime las líneas coincide con un patrón, por lo que si el patrón aparece una o más veces en una línea, grep imprimirá toda esa línea.

Agregando la bandera -m 7 le dirá a grep para imprimir solo las primeras 7 líneas donde aparece el patrón.

Así que esto debería hacer lo que quieras (no lo he probado):

grep -o -m 1 xyz myfile | head -1

Editar:como lo señaló @Kusalananda, no necesita estrictamente el -m flag pero usarlo significa grep no necesitará analizar todo el archivo y generará el resultado más rápido, especialmente si myfile es un archivo grande.


Linux
  1. ¿Coincidencia de patrones multilínea usando Sed, Awk o Grep?

  2. Grep:¿por qué los corchetes en el patrón Grep eliminan el proceso Grep de los resultados de Ps?

  3. ¿Cómo detener el comando Buscar después de la primera coincidencia?

  4. ¿Encuentra el número de línea que contiene el patrón usando el delimitador Regex personalizado?

  5. Comando de Linux:¿Cómo 'buscar' solo archivos de texto?

Resuelve Wordle usando la línea de comandos de Linux

Cómo realizar una búsqueda de patrones en archivos usando Grep

Cómo encontrar archivos usando la línea de comandos en la terminal de Linux

Usando el comando GREP en Linux con ejemplos

Encuentra texto en archivos en Linux usando grep

Grep en un archivo de registro enorme (> 14 GB) ¿solo los últimos x GB?