Предлагаемое вами регулярное выражение (sed 's/=/"&"/'
) заменит =
на "="
, а это не то, что вам нужно. Похоже, это работает правильно на ваших данных образца:
sed -e 's/=\([^" >][^ >]*\)/="\1"/g'
Заменить знак равенства, за которым следует непустое, не кавычка, не больше чем и строка других непустых, не больше чем символы со знаком равенства, двойной кавычкой, запомненной строкой и еще одна двойная кавычка, глобально в каждой строке.