Por padrão, grep
imprime as linhas correspondentes a um padrão, portanto, se o padrão aparecer uma ou mais vezes em uma linha, grep
imprimirá essa linha inteira.
Adicionar o sinalizador -m 7
dirá grep
para imprimir apenas as primeiras 7 linhas onde o padrão aparece.
Então, isso deve fazer o que você quer (eu não testei):
grep -o -m 1 xyz myfile | head -1
Editar: como apontado por @Kusalananda, você não precisa estritamente do -m
, mas usá-lo significa que grep
não precisará analisar o arquivo inteiro e produzirá o resultado mais rápido, especialmente se myfile
é um arquivo grande.