2012-01-22 4 views
0

Я экспортирую схему с использованием ldifde, но выходной файл обертывает длинные строки, поэтому трудно вручную редактировать тысячи строк.unwrap ldifde output file

Я должен редактировать файл, потому что я должен заменить строку там, например:

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 

Как вы можете видеть, что я должен сначала разворачивать файл, а затем заменить string, иначе замена не будет работать. Любые подсказки о том, как я должен это выполнять. Я пробовал скрипт perl, но не удачу. Также я просмотрел варианты ldifde.

Спасибо заранее, m0dest0

+0

@dgw C: \ Perl64 \ бен> Perl -p -e "BEGIN {$/= UNDEF} s/\ п (= [AZ]?)/Г /" test.ldf – m0dest0

+0

@dgw с : \ 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 

И это будет печатать:

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