sed는 문자열을 .로 바꾸고 문자열도 .

sed는 문자열을 .로 바꾸고 문자열도 .

내 myfile.conf에는 다음이 포함되어 있습니다.

ServerAlias *.mysite.com

다음으로 변환하려고 합니다.

ServerAlias *.xxmysite.com

하지만 나는 다음을 얻습니다.

ServerAlias *.xx.mobilsem.com

areemplazar="ServerAlias *."
reemplazo="ServerAlias *.xx"
sed -i ''  -- "s|${areemplazar}|${reemplazo}|g"  ./myfile.conf

"ServerAlias ​​​​*"와 같은 이스케이프 포인트를 사용할 때. , 교체가 없습니다.

내가 뭘 잘못했나요?

답변1

정규식 메타 문자인 마침표 .와 별표는 *문자 그대로 처리하기 위해 이스케이프되어야 합니다.

입력 파일 예:

$ cat input.txt
ServerAlias *.mysite.com

sed 's/ServerAlias \*\./&xx/' input.txt
ServerAlias *.xxmysite.com

관련 정보