2016-07-21 3 views
0

Я пишу сценарий оболочки, в котором я ищу имя приложения. Я использую grep для фильтрации имени приложения. Но вместе с именем приложения также получаю другие имена приложений, содержащие это слово.Точное совпадение слов в Linux

Eg: GREP уведомления

Выходные: уведомления

 notifications-ui 

я получаю выход из всех приложений, содержащих слово «уведомления» Есть ли команда в Linux, чтобы соответствовать только слово, указанное.

Любая помощь по этому вопросу очень полезна.

Спасибо

+0

Зависит от того, что означает «только указанное слово». Вы хотите избежать символов до и после вашего слова? Затем вы можете просто добавить пробелы до и после вашей строки. – mhoff

ответ

0

Человек страниц для Grep покажет вам свет.

Я считаю, что флаг -x - это то, что вы ищете.

-x, --line-regexp Выберите только те соответствия, которые точно соответствуют всей строке. (-x определяется POSIX.)

Так что попробуйте бегущего

grep -x notifications 
+0

Спасибо за ваш ответ, но с использованием -x я не получаю никакого вывода. – RAcharya

0

Использование GNU Grep, вы можете попробовать это

grep -E '(^|)notifications(|$)' FILE 
+0

'$ grep '\ <уведомления \>" <<< "Уведомления-ui'' ' Уведомления-ui' –

+0

@Ignacio Vazquez-Abrams да, мой предыдущий ответ 'grep' \ <уведомления \>" FILE' не может обрабатывать таких случаях. Спасибо, что указали это. – hflzh

+0

Спасибо, что ответили на запрос. Но я ищу что-то вроде cf services | grep <. Он должен перечислить привязки служб только к указанному имени приложения. – RAcharya

0

Попробуйте найти команду:

 find /path/notifications 
+0

Спасибо за ваш ответ, но я перечисляю только имена приложений, используя cli, а затем используя grep для его фильтрации. – RAcharya

Смежные вопросы