使用 vscode 删除\更改 LDIF 中的特定属性

问题描述

我正在将 LDAP 数据库导出到 LDIF,我需要稍微清理一下。有一些我不再想要的属性。如果是单行属性就很简单:

# Entry 23: cn=dwhite,ou=ORG1,o=Root
dn: cn=dwhite,o=Root
objectclass: person
objectclass: inetorgperson
objectclass: webadmaccount
sn: white
cn: dwhite
description: don.white@company.com
givenname: Don
mail: 5551234567@txt.att.net
o: ORG1
uid: dwhite
userpassword: {SSHA}YrGx7L7L8xxxiMzuUzL+f0j+i73uFTYEPnu
webadmdata: OpenOTP.RejectCount={wcrypt}eAw+r6VX6l8lioB+1KX/6A==,OpenOTP.Las
 tLogin={wcrypt}hQCwWl0KRdsiXyG7UPxPxo/WphEkyD6NPTKor8FCA5E=,OpenOTP.LoginCot
 0f5vQVl1ippSdKfigeACiJbFWHsfs=,DataMode=A8tMd3g=

# Entry 24: ou=ORG2,o=Root
dn: ou=ORG2,o=Root
objectclass: organizationalunit
ou: ORG2

# Entry 25: cn=jlee,ou=ORG2,o=Root
dn: cn=jlee,o=Root
objectclass: person
objectclass: inetorgperson
objectclass: webadmaccount
sn: Lee
cn: jlee
userpassword: {SSHA}+CreNAoXMO3XMIWxxaWsA2r3ozyeCBEShn
description: jay.lee@company.com
givenname: Jay
mail: 5551234567@txt.att.net
o: ORG2
uid: jlee
webadmdata: OpenOTP.RejectCount={wcrypt}OrtNikuuHCyBruxUTOq6eg==,OpenOTP.Las
 tLogin={wcrypt}WUa965R8rFV9iHx7LrXrfzxEE3Gjd7TGiFz8AEJBmwU=,OpenOTP.LoginCo
 unt={wcrypt}Qbamc7jYTL+14K1yaZS9kA==,OpenOTP.LastOTP={wcrypt}t+fDlGfP6kGIse
 at8PHJdxJy15LSN4R+tJXr7B7L7+4=,DataMode=A8tMd3g=

在上面删除 'objectclass: webadmaccount' 属性的示例中,使用如下正则表达式的查找和替换:^objectclass.*webadmaccount$ 将完成这项工作。我知道这对于锚点来说似乎有点矫枉过正,但是在 LDIF 的其他地方,您可以发现该刺嵌入在更长的线中,因此锚点也是如此。

现在,当我想摆脱 'webadmdata:' 属性时,我的问题就出现了。你可以看到它们是多行的,而且长度不一样。这就是我被卡住的地方,一个像这样的正则表达式: ^webadmdata:.*[\n\s]+.* 将获得前两行,但随后退出。如果我将 .*[\n\s]+.* 设为捕获组并在末尾用 '+' 重复它: (.*[\n\s]+.*)+ 它将选择整个文件(或崩溃 vscode )。似乎我应该能够编写一个正则表达式来选择从 ^webadmdataA8tMd3g=\n\n 的所有内容,但我一生都无法让它工作。我希望有一个正则表达式或 VSCode 大师可以提供帮助。提前致谢。

解决方法

好吧,我不知道为什么我以前认为这不起作用,但确实如此。以下正则表达式将执行我想要的操作: ^webadmdata:.(.|\n)+?A8tMd3G=$\n

显然 VSCode 默认为惰性限定符。见下文: screenshot

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...