Отображать точные соответствия только с GREP

Как я могу отображать все задания, которые закончились только OK?

Когда я пытаюсь выполнить приведенную ниже команду, он показывает как OK, так и NOTOK, так как оба имеют "ОК"

ctmpsm -listall application | grep OK

Ответ 1

Вам нужно более конкретное выражение. Попробуйте grep " OK$" или grep "[0-9]* OK". Вы хотите выбрать шаблон, который соответствует желаемому, но не соответствует тому, что вы не хотите. Этот шаблон будет зависеть от того, как будет выглядеть ваше содержимое всего содержимого.

Вы также можете сделать: grep -w "OK", который будет соответствовать только целому слову "OK", например "1 OK", но не соответствует "1OK" или "OKFINE".

$ cat test.txt | grep -w "OK"
1 OK
2 OK
4 OK

Ответ 2

Это может сработать для вас

grep -E '(^|\s)OK($|\s)'

Ответ 3

Попробуйте следующее:

Alex [email protected] ~
$ cat test.txt
1 OK
2 OK
3 NOTOK
4 OK
5 NOTOK
Alex [email protected] ~
$ cat test.txt | grep ".* OK$"
1 OK
2 OK
4 OK

Ответ 4

Это работало для меня:

grep  "\bsearch_word\b"  text_file > output.txt  ## \b indicates boundaries. This is much faster.

или,

grep -w "search_word" text_file > output.txt

Ответ 5

попробуйте следующее: grep -P '^ (tomcat!?)' tst1.txt

Он будет искать определенное слово в txt файле. Здесь мы пытаемся найти слово 'tomcat'

Ответ 6

^ отмечает начало строки, а $ отмечает конец строки. Это вернет только точные совпадения "OK".

(Это также работает с двойными кавычками, если это ваше предпочтение.)

grep '^OK$'

Ответ 7

Попробуйте выполнить команду ниже, потому что она отлично работает:

grep -ow "yourstring"

crosscheck:-

Удалите экземпляр слова из файла, затем повторно выполните эту команду, и он должен отобразить пустой результат.