Предположим, у меня есть файл со множеством слов, я хочу найти только первое слово с шаблоном "xyz". Как мне это сделать, если в одной строке есть несколько слов с этим шаблоном?
-m
возвращает все слова в первой строке, в которых он совпадает. Мне нужна только команда grep.
решение1
По умолчанию grep
печатаетлиниисоответствует шаблону, поэтому, если шаблон встречается в строке один или несколько раз, grep
выведет всю строку.
Добавление флага -m 7
заставит grep
печатать только первые 7 строк, где встречается шаблон.
Итак, это должно сделать то, что вам нужно (я не проверял):
grep -o -m 1 xyz myfile | head -1
Редактировать: как указал @Kusalananda, вам не обязательно использовать этот -m
флаг, но его использование означает, что grep
вам не придется анализировать весь файл, и выведет результат быстрее, особенно если myfile
файл большой.
решение2
Ответ на ваш вопрос находится на странице руководства grep:
grep -m1 'searchstring' file_name
Параметр -m<number>
является ключевым. -m1
покажет только первое совпадение, -m2
первые 2 вхождения и т. д.