Ваша первая ошибка заключает ваш скрипт в двойные кавычки вместо одинарных, предлагая оболочке проанализировать его содержимое до того, как sed увидит его, и, таким образом, съедает один слой обратной косой черты.
Если вам приходится иметь дело с одинарными кавычками (которые вам не следует указывать в качестве примера, но в любом случае ...), никогда не делайте этого:
sed "s/foo'bar/stuff/"
сделать это вместо:
sed 's/foo'\''bar/stuff/'
поэтому оболочка не интерпретирует каждую часть вашего скрипта.
Помимо этого - sed не понимает буквальные строки (см. Можно ли надежно избежать метасимволов регулярных выражений с помощью sed ), поэтому вместо этого просто используйте инструмент, который это делает, например, AWK:
awk '
BEGIN { old=ARGV[1]; new=ARGV[2]; ARGV[1]=ARGV[2]="" }
s=index($0,old) { $0 = substr($0,1,s-1) new substr($0,s+length(old)) }
1' \
'http:\\/\\/firstdomain.com\\/qwerty\\/wp-content\\/uploads\\/2018\\/07\\/section-shape.png' \
'https:\\/\\/seconddomain.com\\/wp-content\\/uploads\\/2019\\/06\\/section-shape.png' \
file
https:\\/\\/seconddomain.com\\/wp-content\\/uploads\\/2019\\/06\\/section-shape.png