2016-01-23 68 views
1

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

#define MY_MACRO VALUE1 

#define MY_MACRO VALUE2 

sed的要搜索的已知MY_MACRO名(可以是正則表達式),並設置提供了新的值。調用sed時,舊的宏值不知道。

任何幫助將非常感激。
由於提前,
馬庫斯

回答

0

您可以.*匹配任何值:.任何字符相匹配,*意味着重複零次或多次

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

你可以把它與捕獲組縮短

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

如果#標誌必須在一行的開頭,你可以添加在一行開始匹配^特殊字符:

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

但是,如果單詞之間存在可變數量的空格,它可能變得更加複雜。

+0

這正是我想要的!非常感謝! – Markus