sed로 문자열 치환을 하고싶은데..
글쓴이: forever / 작성시간: 수, 2018/05/09 - 10:17오전
안녕하세요 리눅스에 입문한 초보인데요
sed -i 옵션을 사용해서 /etc/bashrc에 있는 문자열을 치환하고 싶습니다.
sed -i 's/source /mg/graph/init.sh/#source /mg/graph/init.sh/g' /etc/bashrc로 변경을 시도해봤지만
sed: -e expression #1, char 15: unknown option to `s'라는 구문오류가 뜨네요...
/etc/bashrc 에 등록된 환경변수 source /mg/graph/init.sh를 #source /mg/graph/init.sh 로 변경하는 방법이 있을까요..?
아 그리고 /mg/graph/init.sh는 init.sh의 절대경로 입니다.
Forums:
치환은 계속 되는데 혹시 주석처리한 것을 또 처리하는
치환은 계속 되는데 혹시 주석처리한 것을 또 처리하는 문제아닌가요?
만약 그렇다면
sed -i 's/^export team=TD/#export team=TD/g' /etc/bashrc
이런식은 어떻습니까?
---
http://coolengineer.com
ㅠ
질문을 잘못올렸네요 ㅠㅠ 수정했어요
sed 는 s/xxx/yyy/g 이렇게도 쓸 수
sed 는 s/xxx/yyy/g 이렇게도 쓸 수 있지만, s@xxx@yyy@g 이런식으로 구분자를 바꿀 수 있습니다.
---
http://coolengineer.com
팁 감사드려요ㅠㅠ
구분자를 @로도 가능하군요!! 그런데 /mg/graph/init.sh는 init.sh 스크립트 파일의 절대경로이고
sed -i 's@source@#source@g' /etc/bashrc로도 변경은 가능하지만 /etc/bashrc에 source 시작하는 문장이 여러개 있어서 사용할수가 없는 상황이네요..
@ 뿐만 아니라 대부분의 기호로 사용할 수 있습니다.
@ 뿐만 아니라 대부분의 기호로 사용할 수 있습니다.
---
http://coolengineer.com
해결됬어요
경로 앞에 \ 문자를 사용해서 해결됬네요 답변 감사드립니다.
댓글 달기