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

如何使用sed更改C文件中的宏值,sed,Sed,我想用sed更改C文件中的宏值 比如说, #define MY_MACRO VALUE1 与 sed应搜索已知的MY_宏名称(可以是regex)并设置提供的新值。调用sed时,旧宏值未知 非常感谢您的帮助。 提前感谢, Markus您可以使用*匹配任何值:匹配任何字符,*表示重复零次或多次 您可以使用捕获组将其缩短 sed 's/\(#define MY_MACRO \).*/\1VALUE2/' 如果#符号必须位于行首,则可以添加与行首匹配的^特殊字符: sed 's/^\(#define

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

#define MY_MACRO VALUE1

sed应搜索已知的MY_宏名称(可以是regex)并设置提供的新值。调用sed时,旧宏值未知

非常感谢您的帮助。
提前感谢,

Markus

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

您可以使用捕获组将其缩短

sed 's/\(#define MY_MACRO \).*/\1VALUE2/'
如果
#
符号必须位于行首,则可以添加与行首匹配的
^
特殊字符:

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

但是,如果单词之间的空格数量可变,则可能会变得更加复杂。

您可以将任何值与
*
匹配:
匹配任何字符,
*
意味着重复零次或多次

您可以使用捕获组将其缩短

sed 's/\(#define MY_MACRO \).*/\1VALUE2/'
如果
#
符号必须位于行首,则可以添加与行首匹配的
^
特殊字符:

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

但是如果单词之间有不同数量的空格等,它可能会变得更加复杂。

这正是我想要的!谢谢!那正是我想要的!谢谢!