Regex 使用grep查找字母的精确匹配

Regex 使用grep查找字母的精确匹配,regex,Regex,我有一个小问题。我有几个文件: hello-1.c hello-1.o hello-2..c hello-2.o hello-3.c Makefile testorder 使用grep,我只想获得包含一个字母“e”的文件 当我尝试这种方式时: ls | grep "e\{1\} 它仍然给我,即Makefile。感谢您提前回复。如果文件中列出了这些文件,您可以使用grep“^[^e]*e[^e]*$”。这将命中以零个或多个非e字符开头、包含e且以零个或多个非e字符结尾的实例 如果文件位于目录中

我有一个小问题。我有几个文件:

hello-1.c
hello-1.o
hello-2..c
hello-2.o
hello-3.c
Makefile
testorder
使用grep,我只想获得包含一个字母“e”的文件

当我尝试这种方式时:

ls | grep "e\{1\}

它仍然给我,即
Makefile
。感谢您提前回复。

如果文件中列出了这些文件,您可以使用
grep“^[^e]*e[^e]*$”
。这将命中以零个或多个非e字符开头、包含e且以零个或多个非e字符结尾的实例


如果文件位于目录中,则应使用
find-regex“^[^e]*e[^e]*$”

快速提问:文件名本身是否在文件中?如果没有,请将
cd
放入包含文件的目录中,然后尝试以下操作:
find-正则表达式“[^e]*e[^e]*”
所有文件都在目录中。第二种方法是“找到”工作。但我对此表示不满。没有直接的方法来实现它吗?没有。对于你正在尝试的事情,找到是唯一的解决办法。从技术上讲,您可以将find的输出导入grep,但这没有意义。这是一种通用的方法。如果我的正则表达式以e开头或结尾,它将起作用。
[^e]
旁边的
*
表示0或更多。换句话说,这将影响
e
fie
,但不会影响
eep
分层