如何用sed更改C文件中的宏值
问题描述:
我想用C++文件中的宏值更改为sed。
例如,如何用sed更改C文件中的宏值
#define MY_MACRO VALUE1
与
#define MY_MACRO VALUE2
sed的要搜索的已知MY_MACRO名(可以是正则表达式),并设置提供了新的值。调用sed时,旧的宏值不知道。
任何帮助将非常感激。
由于提前,
马库斯
答
您可以.*
匹配任何值:.
任何字符相匹配,*
意味着重复零次或多次。
sed 's/#define MY_MACRO .*/#define MY_MACRO VALUE2/'
你可以把它与捕获组缩短
sed 's/\(#define MY_MACRO \).*/\1VALUE2/'
如果#
标志必须在一行的开头,你可以添加在一行开始匹配^
特殊字符:
sed 's/^\(#define MY_MACRO \).*/\1VALUE2/'
但是,如果单词之间存在可变数量的空格,它可能变得更加复杂。
这正是我想要的!非常感谢! – Markus