리눅스 명령어 · 3 min read · Sep 14, 2025
리눅스 Csplit 명령어 초보자를 위한 설명 (6가지 예제)

리눅스 csplit 명령어는 지정된 컨텍스트 라인 또는 패턴에 따라 파일을 여러 세그먼트로 나누는 다목적 유틸리티입니다. 파일 크기에 따라 나누는 split 명령어와 달리, csplit은 사용자가 행 번호, 정규 표현식 또는 두 가지 조합을 사용하여 분할 지점을 정의할 수 있도록 하여 예측 가능한 구조를 가진 텍스트 파일을 처리하는 데 이상적입니다. 이 명령어는 기본 접두사와 숫자 접미사가 있는 순차적으로 이름이 지정된 출력 파일을 생성하며, 이는 사용자 정의할 수 있습니다. 이러한 유연성은 로그 파일에서 섹션을 추출하거나, 구성 파일을 나누거나, 다른 스크립트나 애플리케이션에서 처리할 텍스트 데이터를 준비하는 등의 작업에 특히 유용합니다.
이 튜토리얼에서는 이 도구의 기본 사항을 논의하고 사용하는 방법을 배울 것입니다. 하지만 그 전에, 여기에서 언급된 모든 명령/지침은 Ubuntu 24.04에서 테스트되었다는 점을 언급할 가치가 있습니다.
리눅스 Csplit 명령어
다음은 명령어의 매뉴얼 페이지에서 정의한 내용입니다:
csplit - 파일을 컨텍스트 라인에 의해 섹션으로 나눕니다다음은 일반 구문입니다:
csplit [OPTION]... FILE PATTERN...csplit에 의해 생성된 개별 작은 파일은 xx00 및 xx01과 같은 이름을 가집니다. 다음 정의는 명령어의 매뉴얼 페이지에서 가져온 것으로, 상황을 더 명확하게 해줄 것입니다:
OUTPUT FILES: FILE을 PATTERN(s)에 따라 나누어 'xx00', 'xx01', ...로 출력하고 각 조각의 바이트 수를 표준 출력으로 출력합니다.다음의 Q&A 형식의 예제는 csplit 명령어가 어떻게 작동하는지에 대한 좋은 아이디어를 제공할 것입니다.
Q1. 행 수에 따라 파일을 나누는 방법은?
파일에 여섯 개의 행이 포함되어 있고, 세 번째 행에서 파일을 나누는 것이 요구된다고 가정해 보겠습니다. 이는 명령어와 파일 이름 뒤에 ‘3’을 인수로 전달하여 수행할 수 있습니다.
예를 들어, 우리의 경우 file1에는 다음과 같은 행이 포함되어 있었습니다:
1 아시아
2 아프리카
3 유럽
4 북미
5 남미
6 호주그리고 우리가 실행한 명령어는 다음과 같습니다:
csplit file1 3출력에서 생성된 숫자는 명령어가 생성한 파일의 바이트 수입니다. 출력에서 두 개의 파일이 생성되었으며, 각각 xx00과 xx01입니다.
이 파일들의 내용은 세 번째 행에서 분할이 발생했음을 확인합니다.
Q2. 정규 표현식을 사용하여 파일을 나누는 방법은?
csplit 명령어와 함께 정규 표현식을 사용할 수도 있습니다. 예를 들어, 이전 경우에서 패턴을 한 번 더 반복하고 싶다면 다음 명령어를 사용하여 이를 수행할 수 있습니다:
csplit file1 3 {1}따라서 이 경우 세 개의 출력 파일이 생성되었습니다:

Q3. 기본 ‘xx’ 대신 사용자 정의 접두사를 사용하는 방법은?
기본적으로 csplit이 생성하는 출력 파일은 ‘xx’를 접두사로 가집니다. 그러나 원한다면 -f 명령어 옵션을 사용하여 접두사를 변경할 수 있습니다. 이 옵션은 새 접두사를 입력으로 요구합니다.
예를 들어, 다음 명령어는 ‘htf’를 접두사로 가진 파일을 생성합니다.
csplit file1 1 -f htfQ4. 오류 발생 시 csplit이 출력 파일을 제거하지 않도록 강제하는 방법은?
csplit 명령어는 기본적으로 오류가 발생하면 생성된 출력 파일을 즉시 제거합니다. 예를 들어, 다음 스크린샷은 최종적으로 출력 파일이 생성되지 않았음을 확인합니다:
그러나 - k 옵션을 사용하여 이 동작을 변경할 수 있습니다. 예를 들어, 동일한 명령어를 다시 실행했지만 이 옵션을 사용하여 이번에는 출력 파일이 삭제되지 않았습니다.
Q5. 입력 패턴과 일치하는 행을 억제하는 방법은?
csplit 명령어는 입력 패턴과 일치하는 행을 억제하는 것도 허용합니다. 해당 옵션은 –suppress-matched입니다.
예를 들어, 다음 명령어는 파일(file1)을 2행에서 나누며 (xx00에는 1행이 포함되고, xx11에는 나머지 행이 포함됨) 다음과 같습니다:
csplit file1 2하지만 2행을 억제하고 싶다면 다음 명령어를 실행할 수 있습니다:
csplit --suppress-matched file1 2Q6. 기본 2자리 대신 사용자 정의 자리 수를 사용하는 방법은?
접두사 자체와 마찬가지로 출력 파일 이름에서 접두사 뒤에 오는 자리 수도 사용자 정의할 수 있습니다. 예를 들어, xx000 및 xx0001과 같은 이름을 원한다면 -n 명령어 옵션을 사용하여 새 자리 수를 나타내는 입력 숫자를 요구합니다.
예를 들어:
csplit -n 1 file1 2위 명령어는 xx0, xx1 등과 같은 파일 이름을 생성합니다.
결론
평균적인 리눅스 명령줄 사용자는 매일 분할을 필요로 하지 않을 수 있지만, 적어도 알아야 할 중요한 유틸리티입니다. 여기에서 대부분의 기본 예제와 명령어 옵션을 다루었습니다. 이를 시도해보고, 도구의 매뉴얼 페이지로 가서 더 많은 정보를 알아보세요.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.