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

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

  • Насколько дорогостоящим является поиск без учета регистра по сравнению с поиском с учетом регистра?
  • Как использовать grep, сохраняя исходный цвет текста?
  • с использованием простого выражения квантора регулярных выражений в grep
  • Соответствие двух файлов для аналогичной первой строки
  • Как я могу сопоставить символ разрыва страницы в регулярном выражении?
  • Веб-интерфейс для поиска / grep / ack
  • ! (*. sh) работает в командной строке, но не в скрипте
  • Как фильтровать вывод сценария в bash, используя запрос типа «(я ИЛИ вы) ИЛИ (john AND! Doe)»?
  • Поиск строки во всех файлах внутри войны
  • Извлечь абзац, разделенный на *** с помощью AWK
  • Как передать строки с одинарными кавычками в 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 - лучшая ОС в мире.