展开ldifde输出文件

时间:2012-01-22 00:17:29

标签: perl active-directory ldif

我正在使用ldifde导出一个模式,但是输出文件包装了长行,因此很难用千行来手动编辑。

我必须编辑该文件,因为我必须在那里替换一个字符串,例如:

distinguishedName: 
 CN=xxx-com-Admin-Assistant-yy,CN=Schema,CN=Configuration,-->DC=morel,DC=mis,DC=mo
 r-ambiguit,<--DC=com

distinguishedName: 
 CN=xxx-com-Admin-Assistant-yy,CN=Schema,CN=Configuration,-->DC=myDomain,<--DC=com

正如你所看到的,我应该首先解开文件,然后替换字符串,否则替换将不起作用任何关于我应该如何执行的线索。我试过perl脚本但没有运气。我也研究了ldifde选项。

提前感谢, m0dest0

2 个答案:

答案 0 :(得分:3)

如果您严格要使用LDIFDE将架构从一个域导入另一个域,则可以使用LDIFDE中的-c参数将一个DN更改为另一个DN,请参阅KB237677: Using LDIFDE to import and export directory objects to Active Directory

-c FromDN ToDN  Replace occurrences of FromDN to ToDN

答案 1 :(得分:2)

#!/usr/bin/perl

use strict ;

my $orig = do { local $/ ; <DATA> } ;
( my $copy = $orig ) =~ s/(DC=)(.+?)(,DC=com)/$1myDomain$3/xsg ;

printf "Before:\n%s\nAfter:\n%s\n" , $orig , $copy ;

__DATA__
distinguishedName:
 CN=xxx-com-Admin-Assistant-yy,CN=Schema,CN=Configuration,DC=morel,DC=mis,DC=mo
 r-ambiguit,DC=com

这将打印出来:

Before:
distinguishedName:
 CN=xxx-com-Admin-Assistant-yy,CN=Schema,CN=Configuration,DC=morel,DC=mis,DC=mo
 r-ambiguit,DC=com

After:
distinguishedName:
 CN=xxx-com-Admin-Assistant-yy,CN=Schema,CN=Configuration,DC=myDomain,DC=com