我想用 sed 更改C文件中的宏值 例如,
#define MY_MACRO VALUE1
与
#define MY_MACRO VALUE2
sed应搜索已知的MY_MACRO名称(可以是正则表达式)并设置新值。调用sed时,不知道旧的宏值。
非常感谢任何帮助
提前谢谢,
马库斯
答案 0 :(得分:0)
您可以将任何值与.*
匹配:.
匹配任何字符,*
表示重复零次或多次。
sed 's/#define MY_MACRO .*/#define MY_MACRO VALUE2/'
您可以使用捕获组缩短
sed 's/\(#define MY_MACRO \).*/\1VALUE2/'
如果#
符号必须位于行的开头,则可以添加在行首处匹配的^
特殊字符:
sed 's/^\(#define MY_MACRO \).*/\1VALUE2/'
但如果单词之间存在可变数量的空格,它会变得更加复杂。