Você omite /
em sed 's///'
padrão. Tente isto :
sed 's/<VirtualHost |IP|:|PORT_80| |MULTI_IP|>/<VirtualHost 127.0.0.1:8080 |IP|:8080 |MULTI_IP|>/' /virtual_host2.conf
E se tudo estiver ok, adicione a opção -i
para executar a substituição real no arquivo.
g
no padrão 's///g'
realiza a substituição global de todas as ocorrências, não a primeira em cada linha.
Você pode usar alguns outros símbolos como delimitador, como 's|||'
, mas não faz sentido em seu exemplo, porque é necessário citar cada símbolo |
. Este comando receberá a mesma saída:
sed 's|<VirtualHost \|IP\|:\|PORT_80\| \|MULTI_IP\|>|<VirtualHost 127.0.0.1:8080 \|IP\|:8080 \|MULTI_IP\|>|' /virtual_host2.conf