Linux 用于find cmd的正则表达式,用于输出带有';e';在它们中,但不在名称的开头/结尾

Linux 用于find cmd的正则表达式,用于输出带有';e';在它们中,但不在名称的开头/结尾,linux,bash,expression,Linux,Bash,Expression,我需要一个find命令来输出某个目录中包含“e”的所有文件名,但“e”不能位于文件名的开头/结尾 $ls。 埃米尔·伊娃:是的 我正在查找的find命令应该只输出let和yes,而不是其他名称 到目前为止我已经尝试过的事情: find dir-name“*e* 查找目录-名称“^e$” 查找目录-名称“[a-z]e[a-z]” 类似的问题我想不出来: 列出所有符合以下条件的文件: 从a、z或y开始 不要以x、z或y开头 只包含一个字符 只有两个字符 只有两三个字符 提前感谢:)如果您想了

我需要一个find命令来输出某个目录中包含“e”的所有文件名,但“e”不能位于文件名的开头/结尾

$ls。
埃米尔·伊娃:是的
我正在查找的find命令应该只输出
let
yes
,而不是其他名称

到目前为止我已经尝试过的事情:

find dir-name“*e*
查找目录-名称“^e$”
查找目录-名称“[a-z]e[a-z]”
类似的问题我想不出来:

列出所有符合以下条件的文件:

  • 从a、z或y开始

  • 不要以x、z或y开头

  • 只包含一个字符

  • 只有两个字符

  • 只有两三个字符


提前感谢:)

如果您想了解,请输入命令

man find
我认为你可以很容易地解决其他问题,如果不能,请用另一个问题问他们。 字母“e”情况的解决方案:

说明:

find. looks in the current directory
-maxdepth 1 does not go into subdirectories
-type f only displays files
-regextype sed sets the type of regular expressions to those for sed
-regex '^\./[^e].*e.*[^e]$'   the regular expression

^ the beginning of the sequence
\. literal dot
/ literal '/'
[^e] character not being the letter e
.* any number of any characters
e literal sign e
$ end of the sequence

如果您想了解,请输入命令

man find
我认为你可以很容易地解决其他问题,如果不能,请用另一个问题问他们。 字母“e”情况的解决方案:

说明:

find. looks in the current directory
-maxdepth 1 does not go into subdirectories
-type f only displays files
-regextype sed sets the type of regular expressions to those for sed
-regex '^\./[^e].*e.*[^e]$'   the regular expression

^ the beginning of the sequence
\. literal dot
/ literal '/'
[^e] character not being the letter e
.* any number of any characters
e literal sign e
$ end of the sequence

谢谢你的建议。你提供的正则表达式可以工作。有没有办法指定这个命令,让我可以用它同时搜索两个目录?我改为home dir,并尝试将指定当前目录的“.”替换为我要搜索的目录的绝对路径,但我的输出为零。Th非常感谢。如果您提供的目录不是。find之后,您还必须更改正则表达式的开头以匹配它们:而不是^\。使用^.*并且据我所知,它应该可以正常工作。找不到regextype sed,但它可以正常工作。您也可以尝试查找。-maxdepth 1-type f-name'[^e]*e*[^e]您可以使用-name,但-name使用“shell模式”,这很尴尬,因为它取决于shell的类型(和版本),并且可能需要转义字符-regex默认使用语法“emacs patterns”,这是在任何地方使用一种正则表达式的最安全方法。我使用sed regex。例如,sed regexp:您可以在下面阅读关于sed的内容,例如:谢谢您的建议。你提供的正则表达式有效。是否有一种方法可以指定此命令,使我可以使用它同时搜索两个目录?我改为home dir并尝试将指定当前目录的“.”替换为我要搜索的目录的绝对路径,但我的输出为零。非常感谢。如果您提供其他目录,而不是。查找之后,还必须更改正则表达式的开头以匹配它们:而不是^\。使用^.*应该可以正常工作。找不到regextype sed,但它可以正常工作。您也可以尝试查找-maxdepth 1-type f-name'[^e]*e*[^e]'您可以使用-name,但是-name使用了“shell模式”,这很尴尬,因为它取决于shell的类型(和版本),可能需要转义字符-regex默认使用语法“emacs patterns”,这是在任何地方使用一种正则表达式的最安全方式。我使用sed regex。例如,sed regexp:您可以在文档«-名称[…]与壳样式模式匹配。元字符(“*”、“?”和“[]”)与文档«-名称[…]与壳样式模式匹配。元字符(“*”、“?”和“[]”)与基名称开头的“.”匹配…»