Как я могу отображать только все задания, которые завершились успешно?
Когда я пробую команду ниже, она показывает как OK, так и NOTOK, поскольку у обоих есть «ОК».
ctmpsm -listall application | grep OK
Как я могу отображать только все задания, которые завершились успешно?
Когда я пробую команду ниже, она показывает как OK, так и NOTOK, поскольку у обоих есть «ОК».
ctmpsm -listall application | grep OK
Вам нужно более конкретное выражение. Попробуйте grep " OK$"
или grep "[0-9]* OK"
. Вы хотите выбрать шаблон, который соответствует тому, что вы хотите, но не будет соответствовать тому, что вам не нужно. Этот шаблон будет зависеть от того, как может выглядеть все содержимое вашего файла.
Вы также можете сделать: grep -w "OK"
, что будет соответствовать только целому слову «ОК», например «1 OK», но не будет соответствовать «1OK» или «OKFINE».
$ cat test.txt | grep -w "OK"
1 OK
2 OK
4 OK
ctmpsm -listall application | grep -w "ABCD123"
, есть строки, отображающие ABCD123
и ABCD123@
, но я хочу только ABCD123
- person aftermath; 25.10.2013
ABCD123
? Просто конец строки? Пространство? Вкладка? Возможно любой из них?
- person lurker; 25.10.2013
grep ".* ABCD123$"
или просто grep " ABCD123$"
. Если он один на линии, то grep "^\s*ABCD123\s*$"
.
- person lurker; 25.10.2013
Это может сработать для вас
grep -E '(^|\s)OK($|\s)'
(^|\s)
означает начало строки или пробела. ($|\s)
означает конец строки или пробел. Таким образом, это будет соответствовать OK , а также OK или OK или OK .
- person Brad; 19.10.2019
Это сработало для меня:
grep "\bsearch_word\b" text_file > output.txt ## \b indicates boundaries. This is much faster.
or,
grep -w "search_word" text_file > output.txt
Вы можете использовать переключатель -v
, чтобы исключить строки.
Это захватит любую строку, заканчивающуюся на OK
, а затем удалит любую строку, содержащую NOT
:
(Если OK
не появляется в конце, просто удалите $
.)
cat test.txt | grep 'OK$' | grep -v 'NOT'
Попробуй это:
Alex Misuno@hp4530s ~
$ cat test.txt
1 OK
2 OK
3 NOTOK
4 OK
5 NOTOK
Alex Misuno@hp4530s ~
$ cat test.txt | grep ".* OK$"
1 OK
2 OK
4 OK
Попробуйте следующую команду, потому что она отлично работает:
grep -ow "yourstring"
crosscheck:-
Удалите экземпляр слова из файла, затем повторите эту команду, и она должна отобразить пустой результат.
-o
неуместно, а -w
уже предоставлено в ответе с наибольшим количеством голосов.
- person tripleee; 08.04.2015
попробуй это:
grep -P '^(tomcat!?)' tst1.txt
Он будет искать определенное слово в текстовом файле. Здесь мы пытаемся найти слово tomcat
Недавно я столкнулся с проблемой в grep. Я пытался сопоставить шаблон xyz, и grep вернул xy-z. Используя какое-то регулярное выражение, мы можем преодолеть это, но сопоставление всего слова grep не помогло. Поскольку сценарий, который я писал, является общим, я не могу ограничить поиск определенным способом, например, x.y.z или x.y-z..
Я решил, что быстрый способ - запустить grep, а затем проверить условие var="x.y.z" var1=grep -o x.y.z file.txt
if [ $var1 == $var ] echo "Точное соответствие шаблону" else echo "Шаблон не соответствует точному" fi
https://linuxacatalyst.blogspot.com/2019/12/grep-pattern-matching-issues.html