Unix 仅使用grep显示精确匹配

Unix 仅使用grep显示精确匹配,unix,control-m,Unix,Control M,如何仅显示结束为OK的所有作业 当我尝试下面的命令时,它显示OK和NOTOK,因为两者都有“OK” 你需要一个更具体的表达。请尝试grep“OK$”或grep“[0-9]*OK”。您希望选择一种模式,该模式与您想要的模式匹配,但与您不想要的模式不匹配。这种模式将取决于整个文件内容的外观 您也可以这样做:grep-w“OK”只匹配一个完整的单词“OK”,例如“1OK”,但不匹配“1OK”或“OKFINE” 试试这个: Alex Misuno@hp4530s ~ $ cat test.txt 1 O

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

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


你需要一个更具体的表达。请尝试
grep“OK$”
grep“[0-9]*OK”
。您希望选择一种模式,该模式与您想要的模式匹配,但与您不想要的模式不匹配。这种模式将取决于整个文件内容的外观

您也可以这样做:
grep-w“OK”
只匹配一个完整的单词“OK”,例如“1OK”,但不匹配“1OK”或“OKFINE”

试试这个:

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 -E '(^|\s)OK($|\s)'

请尝试以下命令,因为它工作正常:

grep -ow "yourstring"

crosscheck:-

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

这对我来说很有效。

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

试试这个:

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

它将搜索txt文件中的特定单词。这里我们尝试搜索word
tomcat
您可以使用
-v
开关排除字符串

这将抓取任何以
OK
结尾的行,然后删除任何包含
的行:

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


最近我在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


这很有效。。但现在我正在尝试使用其他命令,如
ctmpsm-listall应用程序| grep-w“ABCD123”
有行显示
ABCD123
ABCD123@
,但我只想要
ABCD123
之后允许什么?就在队伍的尽头?空间账单?可能是其中的任何一个?@aguas如果文件中后面没有任何内容(在行尾),那么您可以使用
grep.*ABCD123$”
或只使用
grep“ABCD123$”
。如果它本身在一行上,那么
grep“^\s*ABCD123\s*$”
。向下投票:投票率最高的答案中已经提供了
-o
,而
-w
是不相关的。我不同意这实际上提供了更好的结果。当我使用搜索“xml”时,grep没有返回任何超过“xml”的内容,但它返回的是在xml之前开始的内容。比如“libxml”。当我使用这个例子时,它返回了完全匹配的结果。php-m|grep-ow“xml”您能解释一下这里的正则表达式吗?
(^ |\s)
表示行或空格的开头<代码>($|\s)表示行尾或空格。所以这将匹配“OK”以及“OK”或“OK”或“OK”。您好,欢迎来到堆栈溢出。请编辑您的答案,使其反映所问的问题,即如何区分OK和NOTOK。谢谢,谢谢!我能够使用这个精确的东西来测试我的系统是否安装了memcache。当我尝试使用grep时,它返回memcache,但也返回memcached,因此您的解决方案非常有效!php memcache=$(php-m | grep'memcache$| grep-v'NOT')
grep  "\bsearch_word\b"  text_file > output.txt  ## \b indicates boundaries. This is much faster.
grep -w "search_word" text_file > output.txt
grep -P '^(tomcat!?)' tst1.txt
cat test.txt | grep 'OK$' | grep -v 'NOT'