2012-01-22 1 views
0

ldifde를 사용하여 스키마를 내보내고 있지만 출력 파일은 긴 줄을 포함하므로 수천 개의 줄을 사용하여 수동으로 편집하기가 어렵습니다.unwrap 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

+0

@dgw C : \ Perl64 \ BIN> 펄 -p -e "BEGIN {$/S = 미확정}/\ n (= [AZ]?)// g" – m0dest0

+0

@dgw의 C를 test.ldf : \ Perl64 \ bin> perl -p -e "s/\ n // g"test.ldf – m0dest0

+0

그리고'-'''<-'는 변경을 찾는 데 도움이되거나 데이터의 일부분입니까? – dgw

답변

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 

그리고이 인쇄됩니다 : 당신이 엄격하게 다른 사용 LDIFDE 한 도메인에서 스키마를 가져 오려면

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