如何用sed更改C文件中的宏值

时间:2016-01-23 09:49:59

标签: sed

我想用 sed 更改C文件中的宏值 例如,

#define MY_MACRO VALUE1

#define MY_MACRO VALUE2  

sed应搜索已知的MY_MACRO名称(可以是正则表达式)并设置新值。调用sed时,不知道旧的宏值。

非常感谢任何帮助 提前谢谢,
马库斯

1 个答案:

答案 0 :(得分:0)

您可以将任何值与.*匹配:.匹配任何字符,*表示重复零次或多次

sed 's/#define MY_MACRO .*/#define MY_MACRO VALUE2/'

您可以使用捕获组缩短

sed 's/\(#define MY_MACRO \).*/\1VALUE2/'

如果#符号必须位于行的开头,则可以添加在行首处匹配的^特殊字符:

sed 's/^\(#define MY_MACRO \).*/\1VALUE2/'

但如果单词之间存在可变数量的空格,它会变得更加复杂。