영문자의 대소문자 쉽게 변환하기
작성자 정보
- 관리자 작성
- 작성일
컨텐츠 정보
- 2,705 조회
- 0 추천
- 목록
본문
영문자의 대소문자 쉽게 변환하기
파일내의 영문자를 소문자 또는 대문자로 변경하거나 지정한 대로 변경하려면 tr을 이용한다.
즉, tr명령어는 “translate”의 약어로서 지정한 문자를 바꾸어주거나 삭제하는 명령어이다.
즉, 특정한 문자를 다른 문자로 바꾸거나 또는 특정 문자를 제거(삭제)하는 명령어이다.
이 명령어의 주된 용도는 파일내의 대소문자를 변경하여 그 내용을 원하는 포맷으로 만드는 것이다.
이 명령어(tr)의 사용 예를 위하여 trtest라는 텍스트파일을 다음과 같이 생성하였다.
보는 바와 같이 trtest파일 내에는 대문자와 소문자, 그리고 .(마침표)으로 구성된 텍스트 파일이다.
[root@sulinux ~]# ls -l trtest -rw-r--r-- 1 root root 73 2008-12-26 20:10 trtest [root@sulinux ~]# [root@sulinux ~]# cat trtest LINUX is the best OS. You are a LINUXER. I am a SE. She is a programmer. [root@sulinux ~]# |
위에서 확인한 trtest라는 파일의 모든 소문자를 대문자로 바꾸어 보도록 하겠다.
즉, 아래의 예는 다음과 같은 의미를 가지고 있다.
“cat trtest”라는 명령어의 결과가 파이프(|)기호 뒤에 오는 tr명령어의 입력으로 들어간다.
따라서 tr명령어의 작업대상은 trtest가 되는 것이다.
그리고 tr명령어에서 ‘[a-z]’는 a, b, c,….등과 같이 각각의 소문자를 의미하며 ‘[A-Z]’는 각각의 대문자를 의미한다.
그리고 tr명령어에 의해 a는 A로, b는 B로, c는 C와 같이 각각 1대 1로 대응하면서 소문자를 대문자로 변경한다.
[root@sulinux ~]# cat trtest | tr '[a-z]' '[A-Z]' LINUX IS THE BEST OS. YOU ARE A LINUXER. I AM A SE. SHE IS A PROGRAMMER. [root@sulinux ~]# |
따라서 위의 결과는 trtest파일내에 존재하는 모든 소문자가 대문자로 변경되어 출력된 것이다.
그리고 만약 이렇게 출력되는 결과를 원하는 파일에 저장하고자 한다면 다음과 같이 “> 파일명”을 위의 명령어 끝부분에 추가하면 된다.
[root@sulinux ~]# cat trtest | tr '[a-z]' '[A-Z]' > trtest-1 [root@sulinux ~]# [root@sulinux ~]# cat trtest-1 LINUX IS THE BEST OS. YOU ARE A LINUXER. I AM A SE. SHE IS A PROGRAMMER. [root@sulinux ~]# |
위의 예는 trtest파일의 모든 소문자가 대문자로 변경되어 trtest-1파일에 저장되었다.
그리고 cat으로 trtest-1파일의 내용을 확인하였다.
이번에는 앞의 예와는 반대로 특정파일내의 모든 대문자를 소문자로 변경하는 예이다.
아래와 같이 trtest파일의 내용을 cat명령어로 확인하였다.
[root@sulinux ~]# cat trtest LINUX is the best OS. You are a LINUXER. I am a SE. She is a programmer. [root@sulinux ~]# |
위에서 확인한 trtest라는 파일의 모든 대문자를 소문자로 바꾸어 보자. 즉, “cat trtest”라는 명령어의 결과가 파이프(|)기호 뒤에 오는 tr명령어의 입력으로 들어간다.
따라서 tr명령어의 작업대상은 trtest가 되는 것이다.
그리고 tr명령어에서 ‘[A-Z]’는 A, B, C,….등과 같이 각각의 대문자를 의미하며 ‘[a-z]’는 각각의 소문자를 의미한다.
그리고 tr명령어에 의해 A는 a로, B는 b로, C는 c와 같이 각각 1대 1로 대응하면서 대문자를 소문자로 변경한다.
[root@sulinux ~]# cat trtest | tr '[A-Z]' '[a-z]' linux is the best os. you are a linuxer. i am a se. she is a programmer. [root@sulinux ~]# |
따라서 위의 결과는 trtest파일 내에 존재하는 모든 대문자가 소문자로 변경되어 출력된 것이다.
그리고 만약 이렇게 출력되는 결과를 원하는 파일에 저장하고자 한다면 다음과 같이 “> 파일명”을 위의 명령어 끝부분에 추가하면 된다.
[root@sulinux ~]# cat trtest | tr '[A-Z]' '[a-z]' > trtest-2
[root@sulinux ~]# [root@sulinux ~]# cat trtest-2 linux is the best os. you are a linuxer. i am a se. she is a programmer. [root@sulinux ~]# |
위의 예는 trtest파일의 모든 대문자가 소문자로 변경된 후에 trtest-2라는 파일에 저장시킨 후에 trtest-2파일의 내용을 cat명령어로 확인한 것이다.
이번 예에서도 tr 다음에 -s옵션을 사용하는 것을 생략하였다.
다음은 지정한 파일 내에서 특정 문자를 삭제하는 예이다.
앞의 예에서 확인하였던 trtest라는 파일의 내용은 다음과 같다.
[root@sulinux ~]# cat trtest LINUX is the best OS. You are a LINUXER. I am a SE. She is a programmer. [root@sulinux ~]# |
그리고 아래에서는 trtest파일내에서 .(마침표)문자를 모두 제거한 후에 trtest-3파일에 저장하는 예이다.
[root@sulinux ~]# cat trtest | tr -d . LINUX is the best OS You are a LINUXER I am a SE She is a programmer [root@sulinux ~]# [root@sulinux ~]# cat trtest | tr -d . > trtest-3 [root@sulinux ~]# [root@sulinux ~]# cat trtest-3 LINUX is the best OS You are a LINUXER I am a SE She is a programmer [root@sulinux ~]# |
즉 “cat trtest”명령어에 의해 파일의 내용이 출력되며 “|”(파이프명령어)에 의해 cat명령어의 출력이 tr명령어의 입력으로 들어가게 된다.
그리고 “tr -d .”명령어에 의해 .(마침표)를 제거하여 “> trtest-3”에 의하여 그 결과가 trtest-3파일에 저장된 것이다.
그리고 그 결과를 확인하기 위하여 “cat trtest-3”파일의 내용을 확인한 것이다.
관련자료
-
이전
-
다음