Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex grep char后跟任何包含特定其他字符的内容_Regex_Bash_Shell_Grep_Lookaround - Fatal编程技术网

Regex grep char后跟任何包含特定其他字符的内容

Regex grep char后跟任何包含特定其他字符的内容,regex,bash,shell,grep,lookaround,Regex,Bash,Shell,Grep,Lookaround,我想使用grep在目录(/bin)中搜索任何以特定字符开头,后跟任何包含其他两个特定字符之一的字符串的内容。在我的例子中,我希望每个文件都以“g”开头,并包含字母“e”或“n”。我试过“ls/bin”的许多变体。怎么样: ls /bin | grep '^g.*[en]' 那么: ls /bin | grep '^g.*[en]' 使用find可以执行以下操作: find /bin -regex '/bin/g.*[en].*' 使用find可以执行以下操作: find /bin -reg

我想使用grep在目录(/bin)中搜索任何以特定字符开头,后跟任何包含其他两个特定字符之一的字符串的内容。在我的例子中,我希望每个文件都以“g”开头,并包含字母“e”或“n”。我试过“ls/bin”的许多变体。

怎么样:

ls /bin | grep '^g.*[en]'
那么:

ls /bin | grep '^g.*[en]'

使用
find
可以执行以下操作:

find /bin -regex '/bin/g.*[en].*'

使用
find
可以执行以下操作:

find /bin -regex '/bin/g.*[en].*'

解析
ls
输出不是最好的方法:@codefrester伙计们,我们真的应该停止这种不解析ls的方法。虽然我完全同意这些原因(我也很肯定我也知道这一点),但我自己使用
ls | some_命令是日常命令行工作。(当然,我永远不会在脚本中使用它,但它在直接终端工作中是完全可以接受的。用这样的链接评论每个
ls
答案,只是一个窃听器…(只是IMHO);(我也能用“ls/bin | grep-P'^g(?=[e | n])(艰难的方式)做到这一点。)还有,谢谢你的链接!解析
ls
输出并不是最好的选择:@codefrester伙计们,我们真的应该停止这种不解析ls的事情。虽然我完全同意原因(我也很确定我也知道这一点),但我自己使用
ls | some_命令
经常是日常命令行工作。(当然,我永远不会在脚本中使用它,但它在直接终端工作中是完全可以接受的。用这样的链接评论每个
ls
答案,只是一个窃听器…(只是IMHO);(我也能用“ls/bin | grep-P'^g(?=[e | n])(艰难的方式)完成它。另外,谢谢你的链接!