我正在尝试从 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/