Windows 7 sed:我们认可的选项——i

Windows 7 sed:我们认可的选项——i,windows-7,sed,Windows 7,Sed,我用的是7号窗口 sed-V 给我 GNU-sed版本3.02 我有一个文本文件,其中包含: foo-bar 如果我在命令行中写入: sed s/foo/tofu/test.txt 我被打印在标准字体上 豆腐条 但是,我想在位编辑此文件,因此使用-I选项: sed-i s/foo/tofu/test.txt 给我sed:无效选项--i 我缺少什么?虽然我不能保证这会起作用,因为我没有在Windows 7上运行它,但您是否考虑过使用重定向然后交换? 意思是这样的: sed s/foo/tofu/t

我用的是7号窗口

sed-V

给我

GNU-sed版本3.02

我有一个文本文件,其中包含:

foo-bar

如果我在命令行中写入:

sed s/foo/tofu/test.txt

我被打印在标准字体上

豆腐条

但是,我想在位编辑此文件,因此使用
-I
选项:

sed-i s/foo/tofu/test.txt

给我
sed:无效选项--i


我缺少什么?

虽然我不能保证这会起作用,因为我没有在Windows 7上运行它,但您是否考虑过使用重定向然后交换? 意思是这样的:
sed s/foo/tofu/test.txt>tmp.txt&&mv tmp.txt test.txt

虽然这是一种非常肮脏的做事方式,但我认为它可能会奏效。您也可以尝试这样做
sed s/foo/tofu/test.txt>test.txt


但我觉得这可能会导致一些错误,因为您在同一个文件上读写。

这是sed版本。请尝试在此处找到的一个:

由于很少有Windows 7用户使用sed,我不确定您会得到多少帮助。它在linux上运行良好。@ooga谢谢。现在这个解决方案对我来说很有效:也许你应该下载一个更高的版本。我从2009年开始使用GNU sed 4.2.1。它反对
sed-V
,并希望
sed--version
。您的
sed-i
行为我使用了该版本。
sed s///test>test
无法工作:shell将首先处理重定向,文件将被截断为0字节。然后,当sed启动时,它将从一个空文件中读取。