쉘 스크립트에서 sed를 사용해 어떤 파일 (예시에서는 FILE_NAME)에서 특정 문자열을 변경하려고 할 때, 변수로 지정해 놓은 문자열을 사용하기 위해서는 다음과 같이 사용할 수 있습니다.
원래 문자열은 "original"이고 새로 바꾸고자 하는 문자열은 "new"입니다.
export PREFIX="new" sed -i 's/original/$PREFIX/g' -i FILE_NAME |
위와 같은 코드로 작성하게 되면 "original" 이라는 문자열이 "$PREFIX"라는 매크로 이름 자체가 들어가게 됩니다. 이때, $PREFIX를 $(PREFIX)로 작성하면 오류가 발생할 수 있습니다.
이런 부분을 해결하기 위해서는 sed 사용 시 ' (따옴표) 문자 대신에 " (큰따옴표)를 사용하면 됩니다.
export PREFIX="new" sed -i "s/original/$PREFIX/g" -i FILE_NAME |
만약 바꾸고자 하는 문자열이 경로나 특수문자가 포함된 경우에는 sed: -e expression #1, char 20: unknown option to `s' 와 같은 에러가 발생하기도 합니다.
이런 경우에는 / (슬래시) 대신에 | (버티컬 바) 를 사용하면 됩니다.
export PREFIX="new" sed -i "s|original|$PREFIX|g" -i FILE_NAME |
'IT > Ubuntu' 카테고리의 다른 글
Eclipse subclipse JavaHL 오류 (0) | 2021.06.02 |
---|---|
파이썬3(python3) pip 오류 해결 방법 (1) | 2021.03.26 |
Linux 에서 GNU M4 소스 빌드하기 (0) | 2020.07.22 |
우분투(32비트) VS Code 설치하기 (1) | 2020.07.18 |
Ubuntu 에서 VS Code(Visual Studio Code) 설치하기 (0) | 2018.02.14 |