Intereting Posts
Как добавить бесполезную случайную строку в команду linux, чтобы идентифицировать ее через ps? rpm –verify не сообщает о пропавшем файле grep и напечатать, сколько раз мой шаблон в файле 1 присутствует в файле2 Мышь дает больше кликов, чем я Как я могу обнаружить, что не было достаточно опций с getopts Как использовать подстановочный знак в FFMPEG? Scientific Linux 7.1 (rhel 7.1) Гнукаш из EPEL прекратил работу Как удалить удаленный диск с помощью SSH на локальном компьютере и сохранить на локальный диск Firefox всегда открывается за вызов программы Монитор Intel HDMI не распознается Как тестировать память во встроенном Linux-устройстве? Unix: добавить уникальные имена после знаков в тексте регулярное выражение для соответствия идентификаторам без двойного _ Поддержка долгосрочных обновлений безопасности для стабильных дистрибутивов GNU / Linux? Можно ли использовать флаги -y и -Y для hdparm?

Сопоставьте точную строку с помощью grep

У меня есть текстовый файл:

deiauk 1611516 afsdf 765 minkra 18415151 asdsf 4152 linkra sfsfdsfs sdfss 4555 deiauk1 sdfsfdsfs 1561 51 deiauk2 115151 5454 4 deiauk 1611516 afsdf ddfgfgd luktol1 4545 4 9 luktol 1 

и я хочу точно соответствовать deiauk . Когда я это делаю:

 grep "deiauk" file.txt 

Я получаю этот результат:

 deiauk 1611516 afsdf 765 deiauk1 sdfsfdsfs 1561 51 deiauk2 115151 5454 4 

но мне нужно только это:

 deiauk 1611516 afsdf 765 deiauk 1611516 afsdf ddfgfgd 

Я знаю, что есть опция -w , но тогда моя строка должна обрабатывать всю строку.

Попробуйте один из:

 grep -w "deiauk" textfile grep "\<deiauk\>" textfile 

Попробуйте это с GNU grep и отметьте границы слов с помощью \b :

 grep "\bdeiauk\b" file 

Вывод:

 deiauk 1611516 afsdf 765

См .: http://www.regular-expressions.info/wordboundaries.html.

В зависимости от ваших реальных данных вы можете искать слово, за которым следует пробел:

 grep 'deiauk ' file.txt 

Если вы знаете, что это должно быть в начале линии, проверьте:

 grep '^deiauk ' file.txt 

Если ваш grep поддерживает -P (PCRE), вы можете сделать:

 $ grep -P '(^|\s)\Kdeiauk(?=\s|$)' file.txt deiauk 1611516 afsdf 765 deiauk 1611516 afsdf ddfgfgd