我使用 sed 在 XML 文件中进行了一些替换(我知道这很糟糕,但它只是为了快速测试一些东西——通常我会为此使用解析器)。我有 4 个看起来完全一样的语句,即匹配部分仅在键上有所不同
sed -i "s/\(key=\"liferay.db.host\" value=\)\".*\"/\1\"$hostname\"/" "$installer_directory/silent.xml"
sed -i "s/\(key=\"idm.backend.db.host\" value=\)\".*\"/\1\"$hostname\"/" "$installer_directory/silent.xml"
sed -i "s/\(key=\"idm-frontend.portal-tarent.tarent-frontend-host\" value=\)\".*\"/\1\"$hostname\"/" "$installer_directory/silent.xml"
sed -i "s/\(key=\"openid-idp.hostname\" value=\)\".*\"/\1\"$hostname\"/" "$installer_directory/silent.xml"
现在我想知道是否有某种方法可以将这些放入一个 sed 语句中?
就像是
/\(key="(first_key|second_key|third_key)"\) value=\)\".*\"/