Unix 在包含word文件但不包含hypthens的文件中查找单词

Unix 在包含word文件但不包含hypthens的文件中查找单词,unix,Unix,我试图在一个包含world文件但不包含hypthens的文件中查找单词。在我看来,它是正确的,但我的输出显示了一个hypthen和word文件中的所有单词。我的路径名是/folder.file.txt !!不是求反的正确运算符。你需要^ 将匹配包含单词“file”和零个或多个“!”实例的任何字符串或“-” 所以基本上-任何有“文件”这个词的东西。如果要对字符类求反,则需要使用^。但*则允许零个“not模式” 如果破折号紧跟在word文件之后,则: 将匹配: file1243 somefilef

我试图在一个包含world文件但不包含hypthens的文件中查找单词。在我看来,它是正确的,但我的输出显示了一个hypthen和word文件中的所有单词。我的路径名是/folder.file.txt

!!不是求反的正确运算符。你需要^

将匹配包含单词“file”和零个或多个“!”实例的任何字符串或“-”

所以基本上-任何有“文件”这个词的东西。如果要对字符类求反,则需要使用^。但*则允许零个“not模式”

如果破折号紧跟在word文件之后,则:

将匹配:

file1243
somefilefilea
但不是:

file-1234
我认为你的模式可能缺少的是,它允许你忽略模式的一部分

^file[^-]*$ 
你想干什么就干什么


将让您测试正则表达式

当我使用^文件[^-]时,我似乎在输出中得到了一些信息^file[^-]*$给了我以file开头的单词。是的,重复模式和否定模式可能违反直觉,这是一个常见的问题。
file1243
somefilefilea
file-1234
^file[^-]*$