Estou tentando substituir charater < por vazio ou nenhum caractere neste arquivo /etc/dovecot/conf.d/10-ssl.conf
Meu roteiro é
sudo sed -i 's/\<\/etc\/dovecot\/private\/dovecot\.pem/\/etc\/dovecot\/private\/dovecot\.pem/g' /etc/dovecot/conf.d/10-ssl.conf
Não funcionou então cansado: -
sudo sed -i '0,/\<\/etc\/dovecot\/private\/dovecot\.pem/s/\<\/etc\/dovecot\/private\/dovecot\.pem/\/etc\/dovecot\/private\/dovecot\.pem/' /etc/dovecot/conf.d/10-ssl.conf
Não funcionou tão bem. O que há de errado e como posso fazer isso? Além disso, é longo. Como posso dividir várias linhas?
Responder1
Em sed, \<
corresponde ao "início de uma palavra", enquanto plain <
corresponde literalmente.
Para uma substituição mais legível, altere os delimitadores:
sed -i 's=</etc/dovecot/private/dovecot\.pem=/etc/dovecot/private/dovecot.pem=g'
Não há necessidade de barra invertida na peça de reposição.
Você pode encurtar ainda mais a instrução usando uma captura:
sed -i 's=<\(/etc/dovecot/private/dovecot\.pem\)=\1=g'