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
或分层
。