Чтобы ответить на ваш второй вопрос:
б) Не делай "найти". когда вы не знаете, с какого каталога начинается скрипт. Если вы хотите, чтобы он запускался из определенного каталога, укажите это в команде find: find /Users/ptomblin/Shared/ ...
Что касается того, почему он удвоил URL, это потому, что вы сказали ему.
sed -i '' 's/images\//http:\/\/mycdn\.com\/images\//g' {}
Принимает каждый экземпляр слова "images /" и заменяет его на "http://mycdn.com/images/",, даже если оно уже начиналось с" http://mycdn.com/".. Если это не то, что вы хотели, вам нужно будет более подробно рассказать о своем регулярное выражение.
В качестве первой попытки я бы заменил ОБА строки на следующие
find /Users/ptomblin/Shared -name "*.css" -o -name "*.html" -exec sed -i '' 's@".{0,2}/?images@"http://mycdn.com/images@g' {}
Это заменит images
или ../images
, только если они начинаются с двойной кавычки.