【发布时间】:2010-11-01 15:08:27
【问题描述】:
在一组大文件中,我需要将所有出现的“\”替换为“\\”。我想为此目的使用 Perl。现在,我有以下内容:
perl -spi.bak -e '/s/\\/\\\\/gm' inputFile
这个命令对我来说是suggested,但它不会导致 inputFile 发生任何变化(除了更新的时间戳)。认为问题可能是“\”没有被空格包围,我尝试了
perl -spi.bak -e '/s/.\\./\\\\/gm' inputFile
同样,这对文件没有影响。最后,我想我可能错过了一个分号,所以我尝试了:
perl -spi.bak -e '/s/.\\./\\\\/gm;' inputFile
这也没有效果。我知道我的文件包含“@987654328@”,例如在以下行中:
("C:\WINDOWS\system32\iac25_32.ax","Indeo audio)
我不确定正则表达式是否有问题,或者我调用 Perl 的方式是否有问题。我对正则表达式有基本的了解,但在 Perl 方面我绝对是初学者。
这里有什么明显的错误吗?我注意到的一件事是,尽管 inputFile 的大小约为 10MB,但该命令的返回速度非常快。
【问题讨论】: