쉘에서 문자열을 치환하는 방법은 여러가지 방법이 존재합니다.
그 중에 대표적인 방법 2가지를 살펴보도록 합니다.

1. tr (translate)를 사용합니다.
문자열을 변환하거나 삭제하기 위한 간단한 변환기입니다.
먼저, 변환하는 방법에 대해서 살펴보겠습니다.

용법 : tr 'A' 'B'  -> translate A to B
예제
    - echo 'This is a that' | tr 'This' 'That' -> That at a that
      a) "is"가 전부 "at"으로 변환됨에 주의하세요.

    - echo 'THIS IS A THAT' | tr '[A-Z]' '[a-z]' -> this is a that
      a) 대문자를 소문자로 변환합니다.
      b) echo 'THIS IS A THAT' | tr '[:upper:]' '[:lower:]'와 동일합니다.

    - echo 'THIS        IS A THAT' | tr '\t' ' ' -> THIS IS A THAT
      a) tab 문자를 하나의 공백으로 변환합니다.
      b) echo 'THIS      IS A THAT' | tr '[:blank:]' ' '와 동일하지만 [:blank:]는 tab 문자 뿐만 아니라, 공백 문자도 처리하게 됩니다.

다음은 삭제하는 방법에 대해서 살펴보겠습니다.
용법 : tr -d 'A' -> translate A to ''
예제 : echo 'THIS IS A THAT' | tr -d 'A' -> THIS IS THT

2. sed를 사용합니다.
문자열의 스트림을 변경할 때는 sed를 사용합니다.
위 예제를 sed로 변경해 보도록 하겠습니다.

예제
    - echo 'This is a that' | sed 's/This/That/g' -> That is a that
      a) 위 예제와 결과에 차이가 있습니다. "This"와 매칭되는 문자

    - echo 'THIS IS A THAT' | sed 's/\(.*\)/\L\1/'-> this is a that
      a) echo 'this is a that' | sed 's/\(.*\)/\U\1/' -> THIS IS A THAT

    - echo 'THIS      IS A  THAT' | sed 's/\t/ /g' -> THIS IS A THAT
      a) tab 문자를 하나의 공백으로 변환합니다.

    - echo 'THIS IS A THAT' | sed 's/A//g' -> THIS IS THT
      a) A 문자를 없앱니다

좀 더 세부적인 문자열을 다루는 것은 실전에서는 tr보다는 sed를 많이 쓰는 경향이 있습니다.

조만간 sed에 대한 정리를 한 번 하면 좋을 거 같네요^*

블로그 이미지

쩐의시대

나답게 살아가고 나답게 살아가자

,