Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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 使用shell脚本进行OpenLDAP正则表达式搜索_Regex_Performance_Bash_Shell_Ldap - Fatal编程技术网

Regex 使用shell脚本进行OpenLDAP正则表达式搜索

Regex 使用shell脚本进行OpenLDAP正则表达式搜索,regex,performance,bash,shell,ldap,Regex,Performance,Bash,Shell,Ldap,对于OpenLDAP数据库,我需要找到电话号码与regex模式匹配并且位于给定组织单元中的所有用户 根据这一点:ldapsearch是不可能的(否则我的第一选择是什么) 我想在clientside上做尽可能少的工作,查询组织单位中的所有用户并用grep或类似的方法对其进行过滤似乎太耗费资源了。有更好的方法吗 另外,我对shell不是很熟悉,所以我有点害怕“sed”,但我听说它功能强大,在正则表达式过滤中表现良好。如果我需要过滤客户端,哪种方法最简单(不影响性能) 关于批处理输入。如果我在一个CS

对于OpenLDAP数据库,我需要找到电话号码与regex模式匹配并且位于给定组织单元中的所有用户

根据这一点:ldapsearch是不可能的(否则我的第一选择是什么)

我想在clientside上做尽可能少的工作,查询组织单位中的所有用户并用grep或类似的方法对其进行过滤似乎太耗费资源了。有更好的方法吗

另外,我对shell不是很熟悉,所以我有点害怕“sed”,但我听说它功能强大,在正则表达式过滤中表现良好。如果我需要过滤客户端,哪种方法最简单(不影响性能)

关于批处理输入。如果我在一个CSV文件中得到很多部分电话号码,并且每个部分号码都可以有“prefix”/“postfix”/“regex”类型(因此它有两个冒号:type和partialnumber),那么性能最佳的是什么

  • 我是否应该获取组织单元中的所有用户并通过shell脚本对其进行过滤(遍历所有用户并尝试匹配任何数字)
  • 或者我应该对每个数字进行查询(如果在ldap查询中可以使用属性的正则表达式过滤器,那么这是唯一可行的选项)
  • 就我所知,第一种方法是可行的,但有更好的解决方案吗


    我使用的是OpenLDAP 2.4.23,这在任何方面都很重要。

    对LDAP数据使用正则表达式的结果可能不是您所期望的。LDAP数据不是字符串,而是由模式定义的特定类型的数据,应用程序必须始终检索模式以了解如何处理属性值。
    telephoneNumber
    属性具有特定的语法,正则表达式可能无法工作。通常,LDAP客户端必须使用匹配规则来比较和匹配目录服务器中的数据。事实上,最佳实践是应用程序必须始终确保匹配规则,而不是本地语言比较运算符或正则表达式。有关更多信息,请参阅和。

    您只能通过测量进行性能比较。您没有提供足够的信息来就如何进行测量和比较提出建议
    grep
    用于搜索,
    sed
    用于根据搜索结果进行修改。根据具体情况,两者都有可能比另一个更快。谢谢你的回复。通过grep和sed解决问题的性能差异并不是问题的重要部分,我更感兴趣的是使用regex查询ldap。