По умолчанию grep
печатает строки , соответствующие шаблону, поэтому, если шаблон появляется один или несколько раз в строке, grep
напечатает всю строку .
Добавление флага -m 7
укажет grep
напечатать только первые 7 строк, в которых появляется шаблон.
Итак, это должно делать то, что вы хотите (я не тестировал):
grep -o -m 1 xyz myfile | head -1
Изменить: как указано @Kusalananda, вам не нужен строго флаг -m
, но используйте его означает, что grep
не нужно анализировать весь файл, и результат будет быстрее, особенно если myfile
- большой файл.