반응형
사용되는 해결법 : 문자열 구분자를 |로 바꾸자. sed -i "s/s1/s2/" file => sed -i "s|s1|s2|" file
모든 오류가 이런 케이스는 아니겠지만 내가 겪은 케이스는 sed -i "s/str1/str2/" file 이렇게 쓰는데 이제 문자열들 사이에 \$HOME, \$PATH 이런식으로 쉘 변수가 들어가는 경우에 저 오류가 발생했다.
sed -i "s/\/usr\/class\/cs140\/pintos\/pintos\/src/$HOME\/pintos\/src/" 로 썼을 땐 위 오류가 발생했고 아래로 바꾸니까 오류 없이 해결됐다.
sed -i "s|\/usr\/class\/cs140\/pintos\/pintos\/src|$HOME\/pintos\/src|"
오류가 나는 이유는 중간에 /가 여러번 등장해서다.
바꿀 문자열과 어떻게 바꿀지를 정하는 문자열의 구분자로 '/'가 쓰이는데 $HOME같은 경우는 /home/ubuntu 이렇게 중간에 /가 들어간다. 따라서 저 오류가 발생했고 구분자를 '|'로 바꾸니까 해결됐다.
반응형
'TIL' 카테고리의 다른 글
Google Speech-to-Text API Response를 JSON으로 저장하는 방법 (0) | 2021.04.27 |
---|---|
파이썬 json 유니코드 잘 출력하기(한글로 나오게 하기, u 지우기) (0) | 2021.03.12 |
현재 작업을 다른 브랜치에 커밋하고 싶을 때 (0) | 2021.03.05 |
Docker OSError Protocol Not found 오류 (0) | 2021.03.04 |
아이패드랑 컴퓨터 연결하기 화면공유 미러링 (0) | 2021.01.29 |