| HOME / 정보공유 / AIX 명령어 모음

csplit
csplit csplit 명령 목적 문맥(context)별로 파일을 분할합니다. 구문
csplit [ -f Prefix ] [ -k ] [ -n Number ] [ -s ] File Argument ...
설명
csplit 명령은 지정된 파일을 복사하고 사본을 세그먼트로 분할합니다. 수정되지 않은 채로 있는 원본 입력 파일은 반드시 텍스트 파일이어야 합니다.
Argument 매개변수를 지정한 횟수(최대값은 99)에 따라 csplit 명령은 xx00 . . . xx99 파일에 세그멘트를 기록합니다. 기본적으로 Argument 매개변수는 한 행 번호를 예상합니다. 다음과 같은 규칙은 여러 개의 행 번호를 지정할 때 적용됩니다.
xx00 파일에는 원래 파일의 시작부터 첫번째 Argument 매개변수에 지정된 행 번호까지(그 행 번호는 제외)의 행이 있습니다.
파일 xx01은 첫번째 Argument 매개변수에 지정된 번호 행부터 두 번째 Argument 매개변수에 참조된 번호의 행 사이(지정된 번호의 행을 제외)의 행들을 포함합니다. 인수로서 지정된 각 행 번호는 새로운 파일의 시작을 표시합니다.
xxnn 파일(마지막으로 작성된 파일)에는 마지막 Argument 매개변수로 지정된 번호부터 파일 끝까지의 행이 있습니다.
예를 들면, 원본 파일이 108개의 행을 갖고 사용자가 다음 명령을 입력하면,
csplit orginal.txt 11 72 98
csplit 명령은 네 개의 파일을 작성합니다. xx00 파일에는 1-10 행이 있고, xx01 파일에는 11-71 행이 있고, xx02 파일에는 72-97 행이 있고, xx03 파일에는 98-108 행이 있습니다.
Argument 매개변수는 또한 다음의 기호 및 패턴 문자열을 포함할 수도 있습니다.
/Pattern/ 현재 행부터 지정된 패턴을 포함하는 행 직전까지의 세그먼트를 포함하는 파일을 작성합니다. 패턴을 포함하는 행이 현재 행이 됩니다.
%Pattern% 지정된 패턴을 포함하는 행을 현재 행으로 표시하지만, 세그먼트를 위한 파일을 작성하지는 않습니다.
+Number 선행하는 패턴과 일치된 행으로부터 지정된 행 수만큼 정방향으로 이동합니다. 예를 들면, /Page/+5는 Page를 검색한 후 5 행만큼 앞으로 나아갑니다.
-Number 선행하는 패턴에 일치하는 행으로부터 지정된 행 수만큼 뒤로 이동합니다. 예를 들면, /Page/-5는 Page를 검색한 후 5 행만큼 뒤로 이동합니다.
{Number} 선행 옵션을 지정된 횟수만큼 반복합니다. 이 숫자는 임의의 패턴이나 행 번호 뒤에 올 수 있습니다. 패턴 뒤에 오는 경우, csplit 명령은 패턴을 지정된 횟수만큼 재사용합니다. 행 번호 뒤에 오면, csplit 명령은 행 번호에 의해 지정된 지점에서부터 이 숫자에 지정된 행 수에 따라 파일을 분할합니다.
공백이나 기타 쉘에 특별한 문자들을 포함하는 모든 패턴을 따옴표로 묶으십시오. 패턴은 삽입된 개행 문자를 포함할 수 없습니다. [a-z]와 같은 표현식에서, -(빼기 부호)는 현재 배열(collating) 순서에 따라서 두 문자 사이의 모든 값을 의미합니다. 배열 순서는 문자 범위에 사용할 등가 클래스를 정의할 수 있습니다.
플래그
-f Prefix 작성된 파일 세그먼트에 사용할 접두어를 지정합니다. 이 변수에 대한 디폴트 값은 xx입니다.
-k 오류의 경우에 작성된 파일 세그먼트를 원상 그대로 둡니다.
-n Number 작성된 파일 이름에 사용되는 십진 자리수를 변경합니다. 디폴트는 두 자리의 십진수 또는 xx00. . . xx99입니다. 예를 들면, -n 4 플래그를 지정하면, 새 파일은 xx0000 . . . xx0099입니다.
-s 문자 계수의 표시를 억제합니다.
종료 상태
이 명령은 다음과 같은 종료값으로 복귀합니다.
0 정상적으로 완료되었습니다.
>0 오류가 발생하였습니다.
예제
book의 텍스트를 각 장의 개별 파일로 분할하려면 다음과 같이 입력하십시오.
csplit book "/^ Chapter *[k.0-9]k./" {9}
이 명령은 xx00부터 xx09까지 10개의 파일을 작성합니다. xx00 파일에는 첫 장보다 앞에 오는 내용이 들어 있습니다. xx01 - 파일에는 xx09 개별 장이 있습니다. 각 장은 장과 장 번호만을 포함하는 행으로 시작합니다.
book에서 생성한 파일의 chap 접두어를 지정하려면 다음과 같이 입력하십시오.
csplit -f chap book "/^ Chapter *[k.0-9]k./" {9}
이 명령은 book을 chap00 - chap09 파일로 분할합니다.
파일
/usr/bin/csplit csplit 명령이 있습니다.
관련 정보
ed 명령, regcmp 명령, split 명령.