쉘에서 문자열을 치환하는 방법은 여러가지 방법이 존재합니다.
그 중에 대표적인 방법 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에 대한 정리를 한 번 하면 좋을 거 같네요^*
'IT > shell 위 댄스' 카테고리의 다른 글
쉘에서 문자열 조작하기 (0) | 2017.04.19 |
---|---|
쉘에서 정렬(sort)하고 유니크(uniq)한 내용 추출 (0) | 2017.04.05 |
쉘에서 배열 사용하기 (0) | 2017.04.03 |
디렉토리에서 확장자가 없는 파일 찾기(find, ${#변수명}, ${변수명:n:m}) (0) | 2008.10.07 |
배열 활용 (0) | 2008.02.27 |