仅与GREP显示完全匹配

时间:2013-10-24 20:45:29

标签: unix control-m

如何才能显示仅结束的所有作业?

当我尝试下面的命令时,它显示OK和NOTOK,因为两者都有“OK”

ctmpsm -listall application | grep OK

8 个答案:

答案 0 :(得分:23)

您需要更具体的表达方式。试试grep " OK$"grep "[0-9]* OK"。您想要选择与您想要的匹配的模式,但不匹配您不想要的模式。该模式将取决于您的整个文件内容可能是什么样的。

你也可以:grep -w "OK"只匹配整个单词“OK”,例如“1 OK”但不匹配“10OK”或“OKFINE”。

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

答案 1 :(得分:8)

这可能适合你

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

答案 2 :(得分:1)

试试这个:

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

答案 3 :(得分:1)

^标记该行的开头,$标记该行的结尾。这将只返回完全匹配的“确定”。

(如果您愿意,也可以使用双引号。)

grep '^OK$'

答案 4 :(得分:0)

这对我有用

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

,或者

grep -w "search_word" text_file > output.txt

答案 5 :(得分:0)

试试这个: grep -P'^(tomcat!?)'tst1.txt

它将搜索txt文件中的特定单词。在这里,我们试图搜索单词'tomcat'

答案 6 :(得分:0)

最近我在grep中遇到了一个问题。我试图匹配模式x.y.z,grep返回x.y-z,使用一些正则表达式可以克服这个问题,但是使用grep进行整个单词匹配没有帮助。由于我正在编写的脚本是通用脚本,因此我无法像x.y.z或x.y-z一样限制搜索的特定方式。

我想到的快速方法是运行grep,然后进行条件检查 var =“ x.y.z” var1 = grep -o x.y.z file.txt 如果[$ var1 == $ var] 回显“模式匹配完全” 其他 回声“模式不完全匹配” fi

https://linuxacatalyst.blogspot.com/2019/12/grep-pattern-matching-issues.html

答案 7 :(得分:-2)

尝试以下命令,因为它完美运行:

grep -ow "yourstring"

crosscheck:-

从文件中删除word实例,然后重新执行此命令,它应显示空结果。