【发布时间】:2026-02-07 20:15:02
【问题描述】:
我正在尝试在命令行执行简单的搜索和替换。
我有一个名为 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 在命令行中使用,没有文件名,从 STDIN 读取
有没有办法在命令行上使用 -i 和文件名?我在其他地方找到了 BEGIN 语法作为在 Windows 中执行此操作的方法,但是没有收到此消息就没有其他方法了吗?
【问题讨论】: