我已经安装了 Cygwin,我想在命令提示符下执行这样的操作:
perl -pne 's/</<' input > output
但是我遇到了两个单独的问题,&
每个问题<
都需要转义。
- 类似于
's/&/&'
perl 级别的错误- “替换模式未在 -e 第 1 行终止”
- 类似于
's/</<'
shell 级别的错误- "系统找不到指定的文件。 "
我该怎么做才能解决这个问题?
我已经安装了 Cygwin,我想在命令提示符下执行这样的操作:
perl -pne 's/</<' input > output
但是我遇到了两个单独的问题,&
每个问题<
都需要转义。
's/&/&'
perl 级别的错误
's/</<'
shell 级别的错误
我该怎么做才能解决这个问题?
您缺少结尾斜杠:
perl -pne 's/</</' input > output
由于 & 和 < 在单引号之间引用,因此 shell 不会解释它们。
说真的,如果你安装了 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/</<
The syntax of the command is incorrect.
Pax> echo s/^</^<
s/</</