Change "example.com" to your desired replaced domain. --dry-run flag ensures no replacements are actually made ===================== *.wpengine.com ===================== for domain in $(wp db query " SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(t.val, '.wpengine.com', 1), '//', -1) AS subdomain FROM ( SELECT option_value AS val FROM wp_options UNION ALL SELECT meta_value AS val FROM wp_postmeta UNION ALL SELECT post_content AS val FROM wp_posts ) AS t WHERE t.val LIKE '%wpengine.com%' AND t.val LIKE '%//%'; " --skip-column-names); do if [ -n "$domain" ]; then echo "Running search-replace for: $domain.wpengine.com" wp search-replace "//${domain}.wpengine.com" "//www.example.com" \ --precise --all-tables --skip-columns=guid,user_email --report-changed-only --dry-run fi done ===================== *.wpenginepowered.com ===================== for domain in $(wp db query " SELECT DISTINCT SUBSTRING_INDEX(SUBSTRING_INDEX(t.val, '.wpenginepowered.com', 1), '//', -1) AS subdomain FROM ( SELECT option_value AS val FROM wp_options UNION ALL SELECT meta_value AS val FROM wp_postmeta UNION ALL SELECT post_content AS val FROM wp_posts ) AS t WHERE t.val LIKE '%wpenginepowered.com%' AND t.val LIKE '%//%'; " --skip-column-names); do if [ -n "$domain" ]; then echo "Running search-replace for: $domain.wpenginepowered.com" wp search-replace "//${domain}.wpenginepowered.com" "//www.example.com" \ --precise --all-tables --skip-columns=guid,user_email \ --report-changed-only --dry-run fi done