我有一个LDAP模式,但是ldifde包装了长行,所以在googled之后我找到了这个命令来修复文件,但是我收到了以下错误:
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。
答案 0 :(得分:3)
你好像在窗户上。 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 :(得分:1)
狂野的猜测,但在命令提示符中引用是否会让你搞砸?尝试将该行放在一个文件中,看看perl -p file.pl test.ldf
是否会运行。