이 파일 /etc/dovecot/conf.d/10-ssl.conf에서 문자 <를 비어 있거나 문자가 없는 문자로 바꾸려고 합니다.
내 스크립트는
sudo sed -i 's/\<\/etc\/dovecot\/private\/dovecot\.pem/\/etc\/dovecot\/private\/dovecot\.pem/g' /etc/dovecot/conf.d/10-ssl.conf
피곤해서 작동하지 않았습니다.
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
잘 작동하지 않았습니다. 무엇이 잘못되었으며 어떻게 해야 합니까? 게다가 길어요. 여러 줄로 나누려면 어떻게 해야 합니까?
답변1
sed에서는 \<
"단어의 시작"과 일치하는 반면 일반은 <
문자 그대로 일치합니다.
보다 읽기 쉬운 대체를 위해 구분 기호를 변경하십시오.
sed -i 's=</etc/dovecot/private/dovecot\.pem=/etc/dovecot/private/dovecot.pem=g'
교체 부품에 점을 백슬래시할 필요가 없습니다.
캡처를 사용하면 명령을 더욱 단축할 수 있습니다.
sed -i 's=<\(/etc/dovecot/private/dovecot\.pem\)=\1=g'