展开文本文件 - 找不到字符串终止符ERROR

时间:2012-01-21 23:45:58

标签: perl

我有一个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。

2 个答案:

答案 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是否会运行。