3
我试图执行一个简单的搜索并在命令行中进行替换。草莓Perl RegEx,Windows 7
我有一个名为Test1.txt的文件。内容是“今天过得怎么样?”
在命令行中,我导航到文本文件所在的文件夹:C:\ perl。
这里是我发出的命令,并将结果/消息我越来越:
perl -pi.bak -e 's/doing/feeling/g' Test1.txt
这将创建备份,但没有明显的变化就是个Test1.txt做,即使它出现的文件被修改就Windows资源管理器而言。
perl -pi.bak -e "BEGIN{@ARGV=<Test1.txt>} s/doing/feeling/g"
这使得变化和创建备份,但我得到的消息: -i在命令行上没有使用的文件名,从标准输入
读书有没有用使用-i的方式命令行上的文件名?我在其他地方发现了BEGIN语法作为在Windows中执行此操作的方式,但是在没有获取此消息的情况下,没有其他方法可以做到这一点吗?
从我读过的内容来看,双引号表示解释,而单引号表示不解释。但是,不确定在这种情况下有什么不同。 –
@DrewRush'cmd.exe'不会将单引号视为字符串分隔符。在上面链接的问题的接受答案中有一个很好的解释。 – ThisSuitIsBlackNot