RegEx:获取多行 LDAP 条目

标签 regex grep ldap

我正在尝试从 dn:.+ 捕获整个 LDAP 条目到条目的最后一行,但在下一个条目之前停止在最后一行,例如\n#entry-id: 8266。我使用 egrep 进行的尝试和错误毫无进展。注意:我使用的是数据所在的导出 ldif 文件,fwiw。

我最接近的是egrep "dn: cn=name,ou=People,dc=example,dc=com.+.|\n*.+\n"但终端上没有输出。我已经在 regexr.com 上测试了实际的正则表达式。我知道这是一个完全不同的环境。

提前致谢!


示例数据:


dn: cn=name,ou=People,dc=example,dc=com \
shadowLastChange: 17492 \
userPassword: password \
sn: Last \
givenName: First \
cn: first \
mail: <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6e000f030b2e0b160f031e020b400d0103" rel="noreferrer noopener nofollow">[email protected]</a> \
displayName: First Last \
o: University \
ou: Dept. \
objectClass: top \
objectClass: person

\# entry-id: 8266

最佳答案

根据显示的示例,请尝试执行以下 awk 代码。

awk '/entry-id/{found=""} /^dn:/{found=1} found' Input_file

如果您只想打印 entry-id: 之前的 dn: 中的 1 组,则尝试以下代码:

awk '/entry-id/{exit} /^dn:/{found=1} found' Input_file

关于RegEx:获取多行 LDAP 条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69370140/

相关文章:

javascript - 使用正则表达式检查 URL 哈希以查找部分和页面

java - 正则表达式去除驱动器号

java - 一个人不只是简单地进入 ProcessBuilder

java - spring boot-无法读取yaml属性文件application.yml

regex - Linux 上的 Sed 命令只匹配 1 个,而在 Solaris 上会找到多个匹配项

regex - 如何使用 ubuntu grep 查找文本中大写单词的数量?

php - Linux 内核 2.6.18-128.1.10.el5 中 grep 的默认绝对路径

authentication - 如何为 Mantis - LDAP 和数据库用户设置双重身份验证?

python - 使用 AD 作为 Django 的身份验证

ios - 如何搜索多个项目或搜索而不考虑 UISearchBar 的位置