развернуть текстовый файл - не удается найти терминатор строки ОШИБКА - PullRequest
1 голос
/ 22 января 2012

Я получил схему LDAP, но ldifde переносит длинные строки, поэтому после поиска в гугле я нашел эту команду, чтобы исправить файл, но я получаю следующую ошибку:

c:\Perl64\bin>perl -p -e 'BEGIN {$/ = undef}    s/\n(?=[a-z])/ /g' test.ldf
Can't find string terminator "'" anywhere before EOF at -e line 1.

c:\Perl64\bin>

Даже при замене содержимого однимСтрока, я получаю ту же ошибку, поэтому я предполагаю, что предложение является неправильным.

Не могли бы вы дать некоторую подсказку об этом, я новичок на Perl.

Спасибо, m0dest0.

Ответы [ 2 ]

3 голосов
/ 22 января 2012

Вы, кажется, на окнах.Windows не распознает одинарную кавычку ', вам нужно использовать двойную кавычку ":

c:\Perl64\bin>perl -pe "BEGIN {$/ = undef} s/\n(?=[a-z])/ /g" test.ldf

Вы должны знать, что это не меняет входной файл, он просто печатает на стандартный вывод.Если вы хотите изменить файл, вы можете добавить переключатель редактирования на месте, например, -i.bak (сохраняет резервную копию в test.ldf.bak) или использовать перенаправление:

c:\Perl64\bin>perl -pe "BEGIN {$/ = undef} s/\n(?=[a-z])/ /g" test.ldf > out.ldf
1 голос
/ 22 января 2012

Дикая догадка, но может ли быть так, что цитирование вводит вас в заблуждение в командной строке?Попробуйте поместить эту строку в файл и посмотрите, будет ли работать perl -p file.pl test.ldf.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...