본문 바로가기
CS

[Bash shell] Shell 에서 따옴표 없애는 방법

by Warehaus 2021. 9. 13.

종종 필요했던 내용인데 정리하고 나중에 다시 찾지 않기 위해서 기록을 남긴다.

업무 중 cat으로 파일 내용을 출력하고 그 내용을 이용해서 명령어를 만들어야 할 필요가 있었는데, 이때 내용에 따옴표가 있어서 잘 사용하기가 어려웠다. ( 내용은 Web URL  이었다. )

그래서 따옴표를 없애려고 하는데, vim으로 열어서 삭제할 수 있었지만 바로 명령어 내에서 바꿀 방법이 없을까 싶었다.

이 때 내가 이용한 명령어는 sed (https://linux.die.net/man/1/sed) 이다.

 

아래 예시를 보면 어떻게 사용하면 될지 대충 감이 올 것이다. 실제로 변경하는 방식도 vim이랑 어느정도 유사하다.

아래와 같은 파일이 있다고 할 때, 나는 " 을 모두 없애고 싶었다.

$ cat 0913.test 
"http://naver.com"
"google.com"
"hello_world"
"www.facebook.com"
"instagram"

 

아래와 같이 sed명령어로 cat 출력에서 따옴표를 제거 가능하며 실제 파일은 변경하지 않을 수 있다.

$ cat 0913.test | sed 's/\"//'
http://naver.com"
google.com"
hello_world"
www.facebook.com"
instagram"

그런데 그냥 이렇게 쓰면 왼쪽만 바뀌고 원하는 결과와는 조금 다르다.

아래처럼 명령어를 구성하면 모든 내용을 변경 가능하다.

$ cat 0913.test | sed 's/\"//g'
http://naver.com
google.com
hello_world
www.facebook.com
instagram

vim 에서 %s 를 사용해서 변경도 가능하지만 그냥 CLI 상에서 바로 바꾸고 싶을 때 적극 사용해 볼만한 command 라 생각한다.