[RHEL6] 파일 조작 명령어 5탄(split, tac, tee, tr)
본문 바로가기
IT 이야기/Linux 명령어

[RHEL6] 파일 조작 명령어 5탄(split, tac, tee, tr)

by 찬찬이 아빠 2020. 4. 2.
반응형
  21. split(파일 분할)

 1) 경로 : /usr/bin/split

 2) 요약 : 적당한 크기로 파일을 분할

 3) 사용 방법 : split [옵션] [INPUT [PREFiX]]

 4) 옵션

 -b, --bytes=SIZE : 지정한 크기(SIZE)의 바이트 용량만큼 파일을 생성

 --help : 사용법을 출력

 --version : 버전 정보를 출력

 

 5) 추가 설명

split는 하나의 파일을 작은 조각 단위로 나눌 수 있는 명령어입니다. 특히 한정된 용량의 CD나 디스크에 백업을 할 경우에는 파일을 용량에 맞게 분할할 필요가 있습니다. 아래는 현재 디렉터리에 존재하는 모든 파일을 5MB 크기의 파일로 만듭니다.

# tar cvzf - * | split -b 5m - split.tar.gz
a.jpg
b.jpg
c.jpg
d.jpg
... 중략 ...
x.jpg
y.jpg
z.jpg

 

파일 크기를 5MB로 제한하였기 때문에 만일 생성 중인 파일 크기가 5MB가 넘어가면 자동적으로 새로운 파일명을 가지고 파일을 생성합니다. 아래와 같이 %MB 크기를 가진 split.tar.gz로 시작하는 파일들이 생성되었습니다 파일의 맨 마지막에는 aa, ab, ac, ad 등의 이름으로 자동 부여되었습니다.

# ls
a.jpg	b.jpg	c.jpg	d.jpg	e.jpg
... 중략 ...
x.jpg	y.jpg	z.jpg	split.tar.gzaa
split.tar.gzab	split.tar.gzac	split.tar.gzad

 

cat 명령어로 분리되어 있는 여러 파일을 하나의 파일로 합칠 수 있습니다.

# cat split.tar.gza* >> split.tar.gz

 

 

  22. tac(역순 출력)

 1) 경로 : /usr/bin/tac

 2) 요약 : 파을을 역순으로 출력

 3) 사용 방법 : tac [옵션] 파일

 4) 옵션

 -b, --before : 구분자를 먼저 출력. 구분자의 기본값은 줄 바꿈

 -r, --regex : 지정한 정규 표현식을 구분자로 사용

 -s, --separator=STRING : 지정한 문자열(STRING)을 기준으로 문자를 자름

 --help : 사용법 출력

 --version : 버전 정보 출력

 

 5) 추가 설명

tac 명령어는 파일 내용을 역순으로 변환해서 행 단위로 출력합니다. 즉 마지막 행인 아래쪽에서 처음 행인 위쪽 방향으로 정렬하여 출력합니다.

 

아래는 cat 명령어의 파일 출력 내용입니다.

# cat pororo
뽀로로 친구들
1. 뽀로로
2. 혜리
3. 포비
4. 에디
5. 크롱

 

아래와 같이 tac 명령어는 cat와 반대로 행을 기준으로 아래쪽에서 위쪽으로 파일을 출력합니다.

# tac pororo
5. 크롱
4. 에디
3. 포비
2. 혜리
1. 뽀로로
뽀로로 친구들

 

-b -s3 옵션은 3을 기준으로 아의 아래쪽 목록을 우선 출력한 후 나머지를 순서대로 출력합니다.

# tac -b -s3 pororo
3. 포비
4. 에디
5. 크롱
뽀로로 친구들
1. 뽀로로
2. 혜리

 

 

  23. tee(출력 분리)

 1) 경로 : /usr/bin/tee

 2) 요약 : 입력한 내용을 화면에 출력하는 동시에 파일에 저장

 3) 사용 방법 : tee [옵션] 파일

 4) 옵션

 -a, --append : 기존의 파일에 덮어 쓰지 않고 추가

 -i, --ignore-interrupts : 인터럽트 시그널을 무시

 --version : 버전 정보 출력

 --help : 도움말 출력

 

 5) 추가 설명

tee 명령어는 입력한 내용을 출력하는 동시에 파일에 추가할 수있습니다. tee 명령어는 이미 해당 파일이 존재하면 덮어 씁니다. -a 옵션은 기존 파일에 입력한 내용을 추가합니다. 이는 파이프를 통해 화면에 출력하거나 파일에 저장하지만 출력하는 내용에는 아무 영향이 없습니다.

 

아래 예제는 maillist 파일의 내용을 sort 명령어로 정렬하고, tee 명령어를 통해 출력하는 동시에 maillist_sort 파일에 저장합니다.

# cat maillist
chanchan@naver.com
park@hanmail.net
admin@gmail.com

# cat maillist | sort | tee maillist_sort
admin@gmail.com
chanchan@naver.com
park@hanmail.net

 

 

 

  24. tr(문자 변환/삭제)

 1) 경로 : /usr/bin/tr

 2) 요약 : 특정 문자를 삭제 혹은 변환

 3) 사용 방법 : tr [옵션] 문자열1 [문자열2]

 4) 옵션

 -c, --complement : 문자열1을 아스키 값 001~337과 비교하여 보수 연산

 -d, --delete : 문자열1에서 지정한 문자를 삭제한 후 출력

 -s, --squeeze-repeats : 문자열2에서 반복되는 문자를 삭제

 -t, --truncate-set1 : 문자열1을 문자열2의 길이로 자름

 --help : 사용법 출력

 --version : 버전 정보 출력

 

 5) 추가 설명

tr 명령어는 문자를 변환하는 필터로 인용 부호나 []를 사용하여 지정한 내용을 변경합니다. 아래는 filename의 내용 중 모든 대문자를 소문자로 변경합니다.

# cat smallletter
abcdefghijklmnopqrstuvwxyz 1234567890

# tar "a-z" "A-Z" < smallletter
ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890

 

-d 옵션은 지정한 문자열을 모두 삭제합니다.

아래는 파일에 있는 모든 숫자들을 제외하고 출력합니다.
# tr -d "0-9" < smallletter
abcdefghijklmnopqrstuvwxyz

 

-s 옵션은 중복되는 문자를 삭제합니다.

 

아래는 -s 옵션에 " " 공백을 지정하여 연속하는 공백은 삭제하고, 줄 바꿈 표시인 "₩012"로 변경합니다.(아스키코드 012는 줄바꿈)

# tr -s " " "\012" < test
abcdefgijklmnopqrstuvwxyz
1234567890
반응형

댓글