0

我已经安装了 Cygwin,我想在命令提示符下执行这样的操作:

perl -pne 's/&#60;/<' input > output

但是我遇到了两个单独的问题,&每个问题<都需要转义。

  • 类似于's/&/&'perl 级别的错误
    • 替换模式未在 -e 第 1 行终止
  • 类似于's/</<'shell 级别的错误
    • "系统找不到指定的文件。 "

我该怎么做才能解决这个问题?

4

2 回答 2

3

您缺少结尾斜杠:

perl -pne 's/&#60;/</' input > output

由于 & 和 < 在单引号之间引用,因此 shell 不会解释它们。

于 2010-06-21T08:25:59.157 回答
2

说真的,如果你安装了 CygWin,你应该从. bash,而不是cmd.exe. 在处理和转义命令行参数时,它具有更多功能。

话虽如此,您可以尝试使用^转义字符。这是标准的cmd.exe,它至少可以让您摆脱以下问题<

Pax> echo <
The syntax of the command is incorrect.
Pax> echo ^<
<

我没有尝试过这个,因为我没有在我的本地 Windows VM 上安装 Perl。我的笔记本电脑上确实有 CygWin,但正如我所说,我倾向于在bash那里使用而不是cmd.exe. 所以所有的关心,对这个答案不负责任:-)

Pax> echo s/&#60;/<
The syntax of the command is incorrect.

Pax> echo s/^&#60;/^<
s/&#60;/</
于 2010-06-21T08:25:48.673 回答