私は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"
さて、これらを1つのsedステートメントにまとめる方法があるのだろうか?
何かのようなもの
/\(key="(first_key|second_key|third_key)"\) value=\)\".*\"/