지정하는 기준을 바탕으로 파일을 자동으로 나누어 주는 명령, 내용이 긴 문서 파일을 효과적으로 나누어 읽을 수 있게 한다.

사용법 : csplit [옵션]... 파일 인자... 
- : 표준입력으로부터 입력을 받는다. 
-b suffix, --suffix-format=suffix : 새롭게 생성되는 파일의 접미사를 지정한다. 
  보통 파일은 00,01로 시장해서 99까지 생성된다. 아래와 같은 형식 지정이 가능하다. 
   %d 부호 있는 10진수 
   %i %d와 같다 
   %u 부호 없는 10진수 
   %o 8진수 
   %x 16진수 
   %X %x와 같다. 
-f prefix,--prefix=prefix : 새롭게 생성되는 파일의 접두사를 지정할 수 있다. 
   prefix00에서 prefix99까지 중 prefix부분을 지정하는 것이다. 
-k, --keep-files : 생성 도중 에러가 발생하여도, 새롭게 생성된 파일들을 유지한다. 
-n, --digits=num : 생성되는 파일의 길이를 지정한다. 기본값은 2자리이다. 
-s, --quiet,--silent : 문자 개수를 보여주지 않는다. 
-z, --elide-empty-files : 빈 파일을 제거한다. 
--help : 도움말을 보여준다. 
--version : 버전정보를 보여준다. 

csplit는 파일내의 내용들 중 지정하는 기준을 바탕으로 여러개의 파일로 분리 생성하는 기능을 한다. 아래에 csplit 명령어 파일명 다음 올 수 있는 인자들을 설명하였다.
이 인자는 파일들을 나눌 기준으로 생각하면 된다.
n : 현재 라인부터 n번째 라인까지의 범위를 파일로 생성한다.

정규표현식/[+n/-n] : 현재 라인부터 정규표현식을 포함하는 라인까지 파일을 생성한다. +n이면 정규표현식을 기준으로 n번째 줄까지 더 포함하며, -n이면 정규표현식을 기준으로 n번째 줄까지를 제외하게 된다.
%정규 표현식%/[+n/-n] : 정규 표현식의 라인 앞 부분은 저장되지 않는다.
{n} : n번 반복한다.
{*} : 입력이 있을 때까지 반복한다.

예제를 통해 알아보자. 다음에 볼 수 있는 song.txt 파일은 노래 가사를 저장해놓은 것이다. 이 노래들을 각각의 파일로 나누어 저장해 보겠다.

# cat song.txt 
song.1 
어린시절 우리 고왔던 
시간 저 편의 추억들은 
잃어버렸뜬 날들의 크기만큼 
사라져갔지 서로의 약속을 잊고 

song.2 
늘 행복하기를 모두 바라고 있어 
수많은 축복에 미소지는 
아름다운 내사랑 
새햐얀 웨딩 드레스 입고서 
눈시울 적시던 너 

song.3 
부드러운 손길 달콤한 속삭임 
내가 원한 것은 그것만은 아니었지 
내가 바란 것은 당신이 아니라 
내 환상일 뿐 

이 파일을 각 챕터 별로 나누어 보겠다.

# csplit songtxt %song.1% /song.2/ /song.3/ 
111 
120 
111 

csplit 명령으로 xx00,xx01,xx02 파일이 생성되었다.

# cat xx00 
song.1 
어린시절 우리 고왔던 
시간 저 편의 추억들은 
잃어버렸뜬 날들의 크기만큼 
사라져갔지 서로의 약속을 잊고 

# cat xx01 
song.2 
늘 행복하기를 모두 바라고 있어 
수많은 축복에 미소지는 
아름다운 내사랑 
새햐얀 웨딩 드레스 입고서 
눈시울 적시던 너 

# cat xx02 
song.3 
부드러운 손길 달콤한 속삭임 
내가 원한 것은 그것만은 아니었지 
내가 바란 것은 당신이 아니라 
내 환상일 뿐 

새로 생성되는 파일의 숫자는 00부터 시작한다는 것에 주의하자.
2005/06/21 20:39 2005/06/21 20:39

트랙백 주소 :: 이 글에는 트랙백을 보낼 수 없습니다