33

如何仅显示所有以 OK 结束的作业?

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

ctmpsm -listall application | grep OK
4

8 回答 8

44

你需要一个更具体的表达。尝试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
于 2013-10-24T20:49:46.723 回答
21

这可能对你有用

grep -E '(^|\s)OK($|\s)'
于 2013-10-24T21:17:23.337 回答
4

您可以使用该-v开关排除字符串。

这将抓取任何以结尾的OK行,然后删除任何包含以下内容的行NOT

(如果OK没有出现在最后,只需删除$.)

cat test.txt | grep 'OK$' | grep -v 'NOT'
于 2019-10-19T16:08:41.930 回答
3

这对我有用

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

或者,

grep -w "search_word" text_file > output.txt
于 2016-05-11T18:40:16.627 回答
2

尝试这个:

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
于 2013-10-24T20:50:12.957 回答
1

试试下面的命令,因为它完美地工作:

grep -ow "yourstring"

crosscheck:-

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

于 2015-04-08T09:38:41.340 回答
1

尝试这个:

grep -P '^(tomcat!?)' tst1.txt

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

于 2017-11-02T08:38:45.500 回答
0

最近我在 grep 中遇到了一个问题。我试图匹配模式 xyz 并且 grep 返回 xy-z。使用一些正则表达式我们可以克服这个问题,但是使用 grep 整个单词匹配没有帮助。由于我正在编写的脚本是通用脚本,因此我不能限制搜索特定方式,例如 xyz 或 xy-z ..

我想的快速方法是运行 grep,然后运行条件检查 var="xyz" var1= grep -o x.y.z file.txt if [ $var1 == $var ] echo "Pattern match exact" else echo "Pattern does not match exact" fi

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

于 2019-12-13T15:56:49.783 回答