【发布时间】:2015-11-07 09:47:33
【问题描述】:
我想使用sed 替换一个字符串。我尝试了两种方法:
sed -i 's/string_catcher/new_string/g' <file_name>
这会导致错误,因为它没有正确处理参数。 This是我的信息来源。
然后,我想我可以改为写入文件:
sed 's/string_catcher/new_string/g' <file_name> > <file_name>
作为一种解决方法,我考虑将其写入新文件并通过覆盖将其复制回旧文件。但这不会工作,因为文件很大。在vim中打开需要几分钟。
但是,这会导致文件为空。为什么这些没有工作?解决方案?谢谢。
我使用的是 OSX Darwin Kernel 14.4。
【问题讨论】:
-
什么操作系统?
-i选项在 Linux 和 OSX 上的工作方式不同。 -
哦,真的....我在 osx 上
-
请参阅stackoverflow.com/questions/7573368/… 了解如何在 osx 中解决它。基本上,使用
sed -i.backup ...