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

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

  • найти слова со всеми гласными по порядку из файла
  • Замена команды in for loop не работает
  • Запуск grep или других команд в файлах на веб-сервере
  • Извлечь подстроку, используя регулярное выражение в файле Unix
  • grep для нескольких регулярных выражений и подсчет количества вхождений
  • Идеи для анализа результатов netstat для активных подключений
  • Извлечение значений из простого файла html через grep / 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 вхождения и так далее.

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

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