sed 사용 시 경로 변수에 espace 문자 적용하기

쉘 스크립트를 작성할 때 설정 파일 내부를 vim이나 다른 에디터로 일일히 수정하지 않고 sed를 통해 편하게 수정하곤한다.

sed로 문자열을 치환하여 저장하는 방법은 아래와 같다.

1
2
# []은 편의상 표기한 것으므로 실제로 쓰지 말 것
sed -e 's/[oldWord]/[newWord]/g' [파일명] > [저장경로]

이때 경로를 바꿔야 하는 경우,

sed에서 /는 일종의 keyword 이기 때문에 명령어에서 에러 로그를 토할 것이다..

그래서 경로를 바꾸려고할 때는 다음과 같이 escape 문자를 사용해야한다.

1
2
# PATH=/home/test/path/
PATH=\/home\/test\/path\/

하지만 일일히 수정할 수도 없고 귀찮기도 하고 이럴때는 다음과 같이 사용하면 된다!

1
2
3
# PATH=/home/test/path
echo ${PATH} # /home/test/path/
echo ${PATH//\//\\/} # \/home\/test\/path\/
Share