我想用外壳变量“ NEW_IDENTIFIER”中定义的新生成的标识符替换文件中现有的16位标识符。
SEARCH_PATTERN="g_ExistingMachineID"
NEW_IDENTIFIER="456EFABC-4567-546C-B4E2-DA2F45AE2CD3"
g_ExistingMachineID[] = _T( "{123ABCDE-1234-312C-B4E2-0E5F15BD1CA9}" )
期望的输出
g_ExistingMachineID[] = _T( "{456EFABC-4567-546C-B4E2-DA2F45AE2CD3}" )
我使用g_ExistingMachineID作为搜索模式获得了所需的行,但无法获取正则表达式来将123ABCDE-3640-430C-B4E2-0E6F75AF6CA9替换为存储在NEW_IDENTIFIER中的值。
我正在阅读SED并尝试一些表达。
任何帮助,将不胜感激。提前致谢。
最佳答案
如果ID不包含sed的任何特殊字符,则使用地址+替换的普通sed
应该有效:
sed -i~ "/$SEARCH_PATTERN/s/{.*}/{$NEW_IDENTIFIER}/" file
关于linux - 用新的标识符替换16位数字的标识符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49722433/