我想用 shell 变量“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/