найти только первое появление, используя только grep

Предположим, у меня есть файл со многими словами, я хочу найти только первое слово с шаблоном «xyz». Как это сделать, если в этой строке есть несколько слов с этим шаблоном? -m возвращает все слова в первой строке, в которой он совпадает. Мне нужна только команда grep.

  • grepping переменная и добавление 1 к ней
  • Использование Grep Color для просмотра в файле и вывода с цветным ответом среди содержимого файла
  • Рассчитать максимальный TPS из файла журнала
  • Запустить fgrep multicore mac os x
  • Как использовать grep, сохраняя исходный цвет текста?
  • Как найти пробел в тексте. используя grep?
  • Создание шаблона регулярного выражения для grep
  • Как добавить / добавить временную метку для вывода grep?
  • 2 Solutions collect form web for “найти только первое появление, используя только grep”

    По умолчанию grep печатает строки, соответствующие шаблону, поэтому, если шаблон появляется один или несколько раз в строке, grep будет печатать эту целую строку.

    Добавление флага -m 7 покажет grep для печати только первых 7 строк, где отображается шаблон.

    Так что это должно делать то, что вы хотите (я его не тестировал):

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

    Edit: как указано в @ Kusalananda, вам не нужен флаг -m но с его помощью grep не нужно разбирать весь файл и будет выводить результат быстрее, особенно если myfile – это большой файл.

    Ответ на ваш вопрос находится на странице grep man:

    $ grep -m1 'searchstring' имя_файла

    Параметр -m является ключом.-M1 отображает только первое совпадение, -m 2 первые 2 вхождения и так далее.

    Я надеюсь, это поможет вам.

    Linux и Unix - лучшая ОС в мире.