#!/bin/bash
test_cases=("keyword ABC;
keyword ABC.DEF;
keyword ABC.GHI;
keyword ABC.JKL.MNO;
keyword ZYX;
keyword ZYX.RST;
keyword ZYX.WVU;"
"keyword ABC;
keyword ABC.DEF;
keyword ABC.GHI;
keyword ABC.JKL.MNO;"
"keyword ZYX;
keyword ZYX.RST;
keyword ZYX.WVU;")
for test_case in "${test_cases[@]}"; do
echo "---"
sed -zE 's/(keyword ABC[^\n]*\n)(keyword ZYX)/\1\n\2/' <<<"$test_case"
echo "---"
done
IyEvYmluL2Jhc2gKCnRlc3RfY2FzZXM9KCJrZXl3b3JkIEFCQzsKa2V5d29yZCBBQkMuREVGOwprZXl3b3JkIEFCQy5HSEk7CmtleXdvcmQgQUJDLkpLTC5NTk87CmtleXdvcmQgWllYOwprZXl3b3JkIFpZWC5SU1Q7CmtleXdvcmQgWllYLldWVTsiCgoia2V5d29yZCBBQkM7CmtleXdvcmQgQUJDLkRFRjsKa2V5d29yZCBBQkMuR0hJOwprZXl3b3JkIEFCQy5KS0wuTU5POyIKCiJrZXl3b3JkIFpZWDsKa2V5d29yZCBaWVguUlNUOwprZXl3b3JkIFpZWC5XVlU7IikKCmZvciB0ZXN0X2Nhc2UgaW4gIiR7dGVzdF9jYXNlc1tAXX0iOyBkbwogICBlY2hvICItLS0iCiAgIHNlZCAtekUgJ3MvKGtleXdvcmQgQUJDW15cbl0qXG4pKGtleXdvcmQgWllYKS9cMVxuXDIvJyA8PDwiJHRlc3RfY2FzZSIKICAgZWNobyAiLS0tIgpkb25lCgo=