【发布时间】:2015-05-08 01:38:19
【问题描述】:
这是我第一次尝试在 Mac 上执行此操作(我在 Windows 上使用 repl.bat),我正在努力找出正确的语法来执行此操作。
基本上,我有一个名为 define.h 的文件,其中包含类似的内容:
#define GAME_VERSION (2060)
#define TESTHOOK
#define PRERELEASE
#define pi 3.1415926536f
#define FX32_ONE (4096)
我想用传入的环境变量替换括号之间或等号之后的文本(我还想替换其他文件中的 GAME_VERSION= 之类的内容)
我一直在尝试使用 sed、perl 和 awk,但似乎无法正确使用语法。有人可以帮我解释一下吗?
到目前为止,我已经做到了:
echo "GAME_VERSION (2000)" | sed s/'([^)]*)'/'3000'/g
前 2 个回复根本没有更改 define.h 文件,我不确定是我做错了什么还是因为我之前没有显示更多文件内容。不确定是否相关,但 define.h 的内容也会打印到终端控制台。
【问题讨论】:
-
您需要执行
sed -i ...才能将其输出写回原始文件。人 sed。