如何编写多行唯一文本的替换脚本?

时间:2013-12-23 19:30:47

标签: scripting

我运行的服务器在更新时,我必须重新配置各自源文件中的所有提示。有几百个,如果不是超过1,000行,我最终不得不重新配置,以使服务器按照每次更新的需要运行。更新需要将近三天的时间,其中有两天用于完成更新。

我正在寻找一种方法来取代(例如)“godmodemsg:你一直被淹没了。”第30行带有“godmodemsg:你的力场现在活跃”,以及其他几条不同的线。如果线路也改变到第53行,我需要它能够替换它。其中大部分是在普通文本文件中完成的。我该怎么做呢?

2 个答案:

答案 0 :(得分:0)

sed -i -e 's/You have been godded./Your forcefield is now active/g' /dir/yourfile.txt

答案 1 :(得分:0)

如果您拥有的sed版本不支持-i(就地)选项,则必须将输出重定向到临时文件,然后从临时文件到原始文件执行mv。请注意,您应该首先捕获临时文件以检查替换结果是否符合您的预期。