Как распечатать только первый матч с помощью grep

Я пытаюсь grep username:

users | grep "^\b\w*\b" -P 

Как я могу заставить его показывать только первый матч с grep ?

3 Solutions collect form web for “Как распечатать только первый матч с помощью grep”

Если вы действительно хотите вернуть только первое слово и хотите сделать это с помощью grep и ваш grep окажется последней версией GNU grep , вам, вероятно, понадобится опция -o . Я считаю, что вы можете сделать это без использования -P и \b в начале, на самом деле не нужно. Следовательно: users | grep -o "^\w*\b" users | grep -o "^\w*\b" .

Тем не менее, как упоминалось в @manatwork, оболочка, встроенная в read или cut / sed / awk кажется более подходящей (особенно, когда вы дойдете до точки, вам нужно будет сделать что-то еще).

Чтобы показать только первое совпадение с grep , используйте параметр -m , например:

 grep -m1 pattern file 

-m num , --max-count=num

Прекратите чтение файла после нескольких совпадений.

Почему grep ? Команда grep предназначена для поиска. Кажется, вам нужно либо cut либо awk , но чтение встроенного также кажется подходящим.

Сравните их:

 users | cut -d' ' -f1 users | sed 's/\s.*//' users | awk '$0=$1' 

Если вы хотите сохранить его в переменной, используя bash:

 read myVar blah < <(users) 

или:

 read myVar blah <<< $(users). 

Вышеуказанный ответ основан на комментариях @manatwork .

  • Как мне регистрировать xargs -0 rm?
  • скользящий diff для хранения очень похожих файлов?
  • Очередь нескольких видео из Bash Script
  • Хранение части аргументов командной строки в массиве пользователей
  • Команда ssh с кавычками
  • перемещать файлы определенного шаблона в другой каталог
  • Не удалось скопировать несколько файлов с помощью версии rsync 3.0.9?
  • Почему tmux запускается медленнее и медленнее с течением времени?
  • Как rsync файлы между двумя пультами?
  • Заменить строку последовательным индексом
  • Как выполнить скрипт bash в нескольких каталогах?
  • Linux и Unix - лучшая ОС в мире.