我正在尝试在包含world文件的文件中查找单词并且不包含hypthens。它看起来对我来说是正确的,但我的输出显示所有带有hypthen和word文件的单词。我的路径名是/ folder.file.txt
cat /folder/file.txt | grep file[!-]*
答案 0 :(得分:0)
!
不适合否定。您需要^
。
file[!-]*
将匹配包含单词'file'的任何字符串以及零个或多个'!'实例要么 '-'。
基本上 - 任何带有'file'字样的东西。如果要否定字符类,则需要使用^
。但是*
允许“不模式”为零。
如果短划线在<{1}}后面 ,那么:
file
将匹配:
file[^-]
但不是:
file1243
somefilefilea
我认为你的模式中可能缺少的是file-1234
允许你忽略模式的一部分。
*
可能会做你想要的事情吗?
https://www.regex101.com/可让您测试正则表达式。